angularjs链接发生在替换之前
angularjs link happens before replace
在下面的代码片段中,我需要在编译和替换模板后从元素中提取callclass属性。每当我尝试获取attr对象时,它引用的是父元素<servicedesk>
,而不是属性所在的替换模板。我该怎么解决这个问题?
app.directive('servicedesk', ['_sys_ctx', '_sys_servicedesk', '_sys_dictionary',
function(_sys_ctx, _sys_servicedesk, dictionary) {
return {
restrict: "E",
scope: true,
templateUrl: "partials/directives/servicedesk.html",
link: function(scope, elem, attr) {
scope.data = _sys_servicedesk.retrieve(_sys_ctx);
scope.scopename = "servicedesk_directive";
var callclasses = dictionary.define('callclass');
console.log(callclasses);
attr.$observe('callclass', function(value) {
console.log(value)
});
scope.callclass = callclasses[attr.callclass];
}
}
}
]);
这是模板
<card ng-repeat="record in data" name="{{record.name}}" callclass="{{record.class}}">
<header>{{callclass}}</header>
<div class="calldetail">
<div class="userimg">
<img src="{{record.picture}}" alt="" />
</div>
<ul class="custinfo">
<li class="name">
<h3>{{record.name}}</h3>
</li>
<li class="phone">
<h3>{{record.phone}}</h3>
</li>
<li class="email">
<h3>{{record.email}}</h3>
</li>
</ul>
<div class="summary">
{{record.summary}}
</div>
</div>
<ul>
<li>
<div class="description">
{{record.description}}
</div>
</li>
<li>
<span class="status">
{{record.status}}
</span>
</li>
</ul>
</card>
servicedesk元素所在的视图只不过是这个
<servicedesk></servicedesk>
如果它是相关的,那么视图也有自己的控制器。除了callclass之外,其他一切都很好,因为当我试图从链接函数内部记录elem
或attrs
对象时,它引用的是<servicedesk>
元素,而不是替换模板。
您只需将属性replace: true
添加到指令返回对象中,这样您的<servicedesk>
元素将被您的模板替换,您可以访问<card>
标记的attrs
。
相关文章:
- 用超链接替换URLS
- Wordpress:替换源(域名)链接
- 将url替换为链接,但添加了困难
- D3 Javascript HREF链接替换
- 用Javascript按钮替换Javascript超链接
- 用链接替换嵌入的HTML5视频
- 需要查找和替换链接标签
- PHP 自动替换链接 CSS
- 单击链接时替换链接的文本区域
- 检测网址/链接,并用 img 标签替换图像,用 href 替换链接
- JS:用另一个单词替换链接.嵌套引号+转义码
- JS:用链接替换链接.还有一个链接
- 替换链接Javascript中的部分字符串
- 替换链接和文本,如果文本包含:
- 替换链接的正则表达式
- 使用JavaScript/jQuery替换链接中的URL参数值
- Javascript -在文本框中输入数据后替换链接值
- 定时器到期后,如何调整JS代码以替换链接文本
- Jquery.如果没有找到,请替换链接
- 替换链接后运行javascript:void(0)在第一次点击