Javascript angularjs模板绑定
我已经开发了一个transclude指令,并将其设置为使用angularjs模板脚本。一切正常,但我仍然无法访问绑定数据 我的代码: index.htmlJavascript angularjs模板绑定,javascript,angularjs,angularjs-directive,Javascript,Angularjs,Angularjs Directive,我已经开发了一个transclude指令,并将其设置为使用angularjs模板脚本。一切正常,但我仍然无法访问绑定数据 我的代码: index.html <div side-element="box" title="Links"> <ul> <li>Link 1</li> <li>Link 2</li>
<div side-element="box" title="Links">
<ul>
<li>Link 1</li>
<li>Link 2</li>
</ul>
</div>
<script id="box" type="text/ng-template">
<div class="side-box">
<div class="content">
<h2 class="header">Box {{ title }}</h2>
<span class="content" ng-transclude></span>
</div>
</div>
</script>
<script id="ad" type="text/ng-template">
<div class="side-ad">
<div class="content">
<h2 class="header">AD {{ title }}</h2>
<span class="content" ng-transclude></span>
</div>
</div>
</script>
链接函数(..)内的作用域显示正确的标题,但在html中不起作用:
方框{{title}
链接1
链接2
我想我错过了一件事,但我想不出来,我需要你的帮助来完成这个循环
Thanx事先,必须先编译包含角度绑定表达式的模板元素,然后链接。编译阶段准备模板,而链接阶段为绑定表达式设置$watchers 下面是一个应该可以工作的编译函数:
.directive('sideElement', function ($templateCache, $compile, $log) {
return {
restrict: 'A',
transclude: true,
scope:'@',
compile: function(element, attrs) {
var template = $templateCache.get(attrs.sideElement);
var templateElement = angular.element(template);
element.append(templateElement);
return function(scope, element, attr, ctrl, transclude) {
$log.info(scope.title);
}
}
}
错误:[ngTransclude:孤立]在模板中非法使用ngTransclude指令!未找到需要转换的父指令。元素:将您的指令定义更改为“transclude:true”,它绑定了标题,但它不断生成我在模板中注意到的相同错误,即您已经有了ng transclude指令。然后我认为您不需要调用transclude()函数并手动附加克隆。让我知道进展如何!不,它不起作用,即使在删除transclude()函数时也会产生相同的错误
.directive('sideElement', function ($templateCache, $compile, $log) {
return {
restrict: 'A',
transclude: true,
scope:'@',
compile: function(element, attrs) {
var template = $templateCache.get(attrs.sideElement);
var templateElement = angular.element(template);
element.append(templateElement);
return function(scope, element, attr, ctrl, transclude) {
$log.info(scope.title);
}
}
}