angularjs
  • angularjs-directive
  • 2013-10-16 84 views 1 likes 
    1

    我創建了一個指令具有隔離範圍:AngularJS與範圍的回調指令阻止其它指令,從工作

    directive("myDirective",function() { 
        return { 
         restrict: "A", 
         scope: {aaa: '='}, 
         link: function(scope, elem) { } 
        }; 
    }) 
    

    該指令的效果很好,但它防止了同一元素上的所有其他dierctives無法正常工作。 http://jsfiddle.net/ironshay/k5ndr/

    我使用的角度1.0.7:..

    我轉載這個的jsfiddle問題。

    我做錯了什麼?或者它是一種有角度的錯誤?

    回答

    3

    問題是,您已通過在指令中使用範圍{}創建子範圍。所以foo變量不在這個範圍內,它在父類中。通過使用$ parent.foo一切正常:

    <input type="text" placeholder="with directive" ng-disabled="!$parent.foo || $parent.foo == ''" my-directive func="myFunc()" /> 
    

    的jsfiddlehttp://jsfiddle.net/k5ndr/2/

    1

    你正在創建隔離範圍,我認爲這是造成其他指令也得到隔離範圍。

    您可以嘗試將foo變量傳遞到隔離範圍,就像您執行myFunc函數一樣。

    <input type="text" placeholder="with directive" foo='foo' ng-disabled="!foo || foo == ''" my-directive func="myFunc()" /> 
    

    我試圖創建一個搗鼓相同

    http://jsfiddle.net/njXjj/

    相關問題