我喜欢使用指令来制作一个自定义组件.我检查了很多教程,它让我感到困惑,任何人都可以解释一个指令的工作原理.我打算制作的组件是
<shout-list></shout-list>
喊叫列表的模板将是这样的
<div class="shout" ng-repeat="shout in shouts"> <p>{{shout.message}}</p> <img src="media/images/delete.png" width="32" height="32" ng-click="deleteShout({{$index}},'{{shout._id}}')"/> </div>
这是您的指令,有一些内联评论:
angular.module( 'directives',[] ).directive( 'shoutList',function () { return { restrict: 'E',// allow as an element; the default is only an attribute scope: { // create an isolate scope shouts: '=' // map the var in the shouts attribute to this scope },templateUrl: 'templates/shoutList.html',// load the template file controller: function ( $scope ) { // we declare a your function for use in the view $scope.deleteShout = function ( idx,id ) { // do whatever }; } }; });
和模板文件:
<div class="shout" ng-repeat="shout in shouts"> <p>{{shout.message}}</p> <img src="media/images/delete.png" width="32" height="32" ng-click="deleteShout({{$index}},'{{shout._id}}')" /> </div>
现在你可以在你的代码中使用它,就像这样:
控制器:
.controller( 'MainCtrl',function ( $scope ) { $scope.myShouts = // ... });
视图:
<shout-list shouts="myShouts"></shout-list>
希望这可以帮助!