在我的directive
中,我將根據index
值替換模板。當用戶點擊模板時,我需要將點擊的directive
值分配給scope
值。如何使用自定義元素點擊事件更新範圍值?
我無法直接撥打scope
這裏的replaced
元素。如何處理這種情況?
這裏是我的directive
代碼:
var allAppsGallery = function ($compile) {
return {
replace : true,
scope : {
index : "=",
app : '='
},
link : function (scope, element, attrs) {
var getTemplate = function (index, app) {
switch (index) {
case 0 :
case 13 :
case 14 :
case 15 :
case 5 :
return $('<div />',
{
class:'bgr box'+index,
html : '<h2>'+app.completion+'%</h2><span>'+app.name+'</span>',
click : function() {
alert("hi"); //click works here
//but how to update the scope variable?
}
}
);
break;
}
}
element.html(getTemplate(scope.index, scope.app));
$compile(element.contents())(scope);
element.replaceWith(element.contents());
element.click(function(event) { //click event not works.
scope.activeApp = scope.app; //the new value on click need to update
scope.$appy();
});
}
}
}
這裏有一個現場演示:
'$ scope.activeApp =應用;'其實我想更新'app'這裏。範圍變量名稱是'$ scope.activeApp' – user2024080