我有以下div:
<div style="font-size:15px;" class="title">
<div>{{specialOffer.Name}}</div>
</div>
我需要在{{specialOffer.Name}}替换为其值后执行JS函数。对不起,我是一个Angular新手,试图解决现有代码上的一些错误。
我尝试了$(document).ready或window.onload,但是这些事件被解雇得太快了。
答案 0 :(得分:2)
你可以这样做:它的一种可能性,在谈论渲染时,最好是在指令内部。
$(document).ready(function(){
$("#service_category_selection").on('change', function(){
$.ajax({
url: "narrow_service_by_service_category_selection",
type: "GET",
data: {service_category_id: $(this).val()},
success: function(data){
/* ... */
}
})
});
});
&#13;
service category
&#13;
快乐帮助!
答案 1 :(得分:0)
尝试使用ng-init,请参阅
<div style="font-size:15px;" class="title">
<div ng-init="functionName(specialOffer.Name)">
{{specialOffer.Name}}
</div>
</div>
答案 2 :(得分:0)
这是一种方法。
$scope.$watch('specialOffer.Name', function(newVal, oldVal) {
callYourFunction()
});
每次specialOffer.Name
更改时,都会运行回调并更新DOM(意味着{{specialOffer.Name}}
获得&#34;填写&#34;)。
但这有一种代码味道&#34;它。在不了解情境的情况下,我无法确定这是一种糟糕的方法,但我感到悲观。查看this以更好地了解数据绑定的工作原理。
答案 3 :(得分:0)
这是解决方案.Plese找到相同的。 这里的问题是通过使用angularjs指令post link解决的。
app.directive('afterRender', function () {
return {
link: {
post: function ($scope, elem, attr) {
$timeout(function () {
alert('Data was rendered');
// add your java script code
}, 0);
}
}
};
});
<div ng-app='myApp' ng-controller='myCtrl'>
<span after-render>{{expression}}</span>
</div>