У меня есть пример такой же директивы в jsFiddle и еще один в plnkr. В jsFiddle мне нужно дважды щелкнуть текст, чтобы изменить текст, в то время как в plnkr он работает, как ожидается, с одним. Может кто-нибудь указать на это, если это ожидаемое поведение или просто ошибка в скрипке.В jsFiddle, почему мне нужно дважды щелкнуть, чтобы изменить текст в директиве?
http://plnkr.co/edit/2Z1u2PzbRzPYzjPv4miG?p=preview
HTML:
<div ng-app="testModule">
<div ng-controller="MyCtrl">
<div>{{test}}
<br/>
<test-directive class="width" bindme="test" style="color: red;">Click Me Twice!!</test-directive>
</div>
</div>
</div>
Директива/Контроллер:
angular.module('testModule', []).directive('testDirective', function() {
return {
restrict: 'E',
scope: {
bindme: "="
},
link: function (scope, element, attr) {
element.bind('click', function() {
scope.bindme = "Changed";
if (!scope.$$phase) {
console.log(scope.bindme);
scope.$apply();
} else {
console.log("Something");
}
});
}
};
}).
controller('MyCtrl', function ($scope) {
$scope.test = "Some string";
});
Спасибо!
Вы, честно говоря, должны пропустить всю линию 1.1.x - [1.2.0rc1] (http://code.angularjs.org/1.2.0rc1/angular.min.js), и это будет стабильная версия 1.1.x. – OverZealous
Я на самом деле рекомендую использовать только стабильную версию 1.0.7 – zsong