angularjs
  • angularjs-directive
  • 2013-10-16 115 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/

    相关问题