ng-repeat在指令内部与ng-transclude一起使用。
ng-repeat在指令内部与ng-transclude一起使用。
我想创建一个具有自定义行为的列表,当其内容发生变化时。我试图为此创建一个指令,但是我对如何将ng-transclude与ng-repeat指令结合使用感到有些困惑。有人能帮我吗?
HTML:
{{myItem}}
Javascript:
angular.module('myApp', []) .controller('ctrl', function ($scope) { $scope.items = ['one', 'two', 'three']; }) .directive('mylist', function () { return { restrict:'E', transclude: 'element', replace: true, scope: true, template: [ '
- ',
'',
'
我已经在这里部分实现了here
编辑:
要求:
- 项目的模板必须在视图中定义,而不是在指令中,并且必须在子作用域中访问item属性。理想情况下,我想要像ng-repeat指令中那样定义它。
- 指令必须访问列表,以便我可以设置正确的监视器并进行更改。如果可能的话,我想要轻松访问生成的DOM项(我也可以使用`element[0].querySelectorAll('ul>li')`之类的方法,它只需要在Chrome上工作即可)。
- 如果可能的话,我想要重用ng-repeat指令中的逻辑,因为它已经做了我想要的很多事情。最好不要复制代码。我只想增强它的行为,而不是改变它。