2013-08-29 54 views
0

我在jsFiddle中有相同的指令示例,而在pnkr中有另一個指令。在jsFiddle中,我必須單擊文本兩次才能在plnkr中更改文本,它的工作方式與預期的一樣。如果這是一個預期的行爲或只是一個小提琴中的錯誤,有人可以指出它嗎?在jsFiddle中,爲什麼我必須點擊兩次才能更改指令中的文本?

http://jsfiddle.net/z6bfC/

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

看來AngularJS 1.1.0做了一些時髦的東西。

試試1.1.1。 http://code.angularjs.org/1.1.1/angular.min.js

+0

你誠實地應該跳過整個1.1.x行 - [1.2.0rc1](http://code.angularjs.org/1.2.0rc1/angular.min.js)出來,它將是穩定版本的1.1.x版本。 – OverZealous

+0

我其實只推薦使用1.0.7的穩定版本 – zsong

相關問題