我正在构建一个指令,可以在不同的控制器中使用,我希望能够将指令绑定到我的$scope
的特定属性。AngularJS:指示指令的范围
我愿做这样的事情:
<div ng-app="myapp">
<div ng-controller="myController">
<my-directive-wrapper ng-model="mymodel">
<my-directive-inner ng-repeat="item in items" />
</my-directive-wrapper>
</div>
</div>
在这种模式下:
$scope.mymodel = {
name : "Transclude test",
items : [
{ title : "test1" },
{ title : "test2" },
{ title : "test3" }
]
};
所以该指令myDirectiveWrapper
得到$scope.mymodel
的范围,而不是其他。然后我可以将指令放两遍,每个指向一个不同的属性。
我这儿有问题的演示项目:http://jsfiddle.net/vtortola/P8JMm/3/
而同样的演示正常工作(不限制范围)位置:http://jsfiddle.net/vtortola/P8JMm
的问题是,如何在使用说明我的指令,我想使用我的$scope
的特定属性作为我的指令的范围。应该可以将该指令绑定到相同的$scope
中的任意属性。
干杯。
你看过传递给链接函数参数的'$ transclude'函数吗?它允许你传递一个对象作为被转义部分的作用域和一个DOM替换函数。结帐这个SO线程http://stackoverflow.com/questions/13183005/what-exactly-do-you-do-with-the-transclude-function-and-the-clone-linking-functi – javaCity
这是如何http:///jsfiddle.net/P8JMm/4/ –
@NidhishKrishnan变量名没有被绑定,它应该在屏幕上显示“Transclude test”。该指令使用$ scope,而不仅仅是它的一部分。好主意,但。 – vtortola