所以假设我正在编写一个自定义指令,将模板加载到 div 中。我的自定义指令称为loadClickedTpl
. 单击时loadClickedTpl
,它应该读取属性并将模板加载到#target
.
到目前为止,我的 html 看起来像这样:
<html np-app="mymodule">
<head>...</head>
<body>
<a loadClickedTpl tplSrc="myTpl" > Click Me to load template </a>
<div id="target" ng-include src="clickedTpl"></div>
<script type="text/ng-template" id="myTpl">
<h1>Loaded</h1>
</script>
</body>
</html>
问题是将clickedTpl
var 设置为指向模板。如果它像这样在 html 中完成,<div id="target" ng-include src="'myTpl'"></div>
它可以正常工作,那么以编程方式执行它被证明是一个挑战。这是我到目前为止所尝试的:
angular.module('loadATpl').directive 'loadClickedTpl', ->
(scope, element, attrs) ->
element.bind 'click', ->
# does not work
scope.clickedTpl = attrs.tplSrc
# also does not work
angular.injector(['ng']).invoke ($rootScope) ->
$rootScope.clickedTpl = attrs.tplSrc
# obviously does not work
clickedTpl = atts.tplSrc
angular.module('mymodule', ['loadATpl'])
点击绑定确实有效,但这就是它的结束。