我有这样的指示。
app.directive('updateinfo', function() {
function link(scope, element, attrs) {
function update(){
var str = '<input type="text" ng-model="scope.log1" />';
element.html(str);
}
update();
}
return {
link: link
};
});
该指令显示一个文本输入框,但它不显示scope.log1
值,并且在文本框中所做的更改不会反映在范围变量中。我想使用链接功能,因为我想访问其他scope variables
。有没有办法使用链接函数并仍然将数据绑定到范围变量。
我感谢任何帮助。
答案 0 :(得分:2)
首先,您不得将scope
或$scope
写入DOM
其次,您需要编译您的内容
app.directive('updateinfo', function($compile) {
function link(scope, element, attrs) {
var str = '<input type="text" ng-model="log1" />';
element.html(str);
$compile(element.contents())(scope);
}
return {
link: link
};
});
答案 1 :(得分:0)
这对我有用
.directive('updateinfo',['$compile', function($compile) {
function link(scope, element, attrs) {
function update(){
var str = '<input type="text" ng-model="log1" />';
element.html(str);
}
update();
element.replaceWith($compile(element.html())(scope));
}
return {
link: link
};
}]);