我想在以下内容中使用.popover(来自我的模板):
<li ng-repeat="(pid, product) in myProducts" class="status-indicator p{{pid}} {{product.status ? '' : 'disabled'}}"
data-original-title="<?php echo _('Product status'); ?>"
data-content="{{product.description}}: {{product.status ? '<?php echo _('enabled'); ?>' : '<?php echo _('disabled'); ?>'}}" status-indicator></li>
Popover从我的主要指令中获胜:
spampanel.directive('domainTable', function() {
return {
replace:true,
template: $('#domainTableTemplate').html(),
link: function(scope, elem, attrs) {
$(".status-indicator").popover({
placement: 'right',
trigger: 'hover'
});
}
};
});
我在这里做了很多事,没有用。
如果我专门针对那些&#39; li&#39;元素,它将工作,但只有$ apply:
spampanel.directive('statusIndicator', function() {
return {
link: function(scope, elem, attrs) {
scope.$apply();
elem.popover({
placement: 'right',
trigger: 'hover'
});
}
};
});
为什么我必须使用$申请才能正常使用?如果我不使用$ apply,那么大括号之间的所有内容都会被取消评估&#34; {{...}}&#34;。
似乎我在正常时间之前迫使某些事情被执行,这对我来说似乎并不合适。如果有时间和地点我应该放置这个popover,它的时间和地点是什么?
我宁愿在这里只有一个指令,但我怎么能让它工作呢?
答案 0 :(得分:1)
angularjs不知道在angularjs库之外做出的任何更改,因此您应该使用$scope.$apply()
...
这里有关于$scope.$apply() ...
的非常好的文章除此之外,你可以检查angular-ui-bootstrap库,以便更好地理解如何编写指令...