【发布时间】:2017-01-10 06:59:25
【问题描述】:
我是角度自定义指令的初学者。我只是使用自定义指令根据控制器范围值渲染两个 html 模板。渲染 html ng-click="myclick()" 事件后对两个模板都不起作用。
view.html
<div ng-controller = 'ctrl1'>
<div class="doc-list-wrapper" ></div>
</div>
<div ng-controller = 'ctrl2'>
<div class="doc-list-wrapper" ></div>
</div>
模板
<script type="text/ng-template" id="tmpl-doc-list-wrapper">
<ul>
<li ng-repeat="doc in docs" >
<a rel="external" ng-click="myclick()" >
<span >{{doc.stageName}}</span>
</a>
</li>
</ul>
</script>
模板渲染
app.run(function ($templateCache) {
$templateCache.put(
'tmpl-doc-list-wrapper', jQuery('#tmpl-doc-list-wrapper').html());
});
我的指令
app.directive('docListWrapper', ['$timeout', function ($timeout) {
return {
restrict: 'C',
priority: 500,
replace: true,
templateUrl: 'tmpl-doc-list-wrapper',
scope: { docs: '=docs'},
link: function (scope, element, attrs) {
}
};
}])
控制器
app.controller('ctrl1', function ($scope, $interval) {
$scope.docs = [{"doc":"http://google.com","stageName":"Project 1"},
{"doc":"http://google.com","stageName":"Project 2"},
{"doc":"http://google.com","stageName":"Project 3"},
{"doc":"http://google.com","stageName":"Project 4"},
{"doc":"http://google.com","stageName":"Project 5"},
{"doc":"http://google.com","stageName":"Project 6"},
{"doc":"http://google.com","stageName":"Project 7"},
{"doc":"http://google.com","stageName":"Project 8"}];
$scope.myclick = function(){
alert('clicked me ')
}
});
app.controller('ctrl2', function ($scope, $interval) {
$scope.docs = [{"doc":"http://google.com","stageName":"Unit 1"},
{"doc":"http://google.com","stageName":"Unit 2"},
{"doc":"http://google.com","stageName":"Unit 3"},
{"doc":"http://google.com","stageName":"Unit 4"},
{"doc":"http://google.com","stageName":"Unit 5"},
{"doc":"http://google.com","stageName":"Unit 6"},
{"doc":"http://google.com","stageName":"Unit 7"},
{"doc":"http://google.com","stageName":"Unit 8"}];
$scope.myclick = function(){
alert('clicked me ')
}
});
【问题讨论】:
标签: javascript jquery angularjs angularjs-directive