我有一些指令和一些模板。
angular.module('testModule', [])
.directive('testInput', function () {
var id = 1;
return {
restrict: 'E',
replace: true,
scope: {
model: '='
},
template: '<div><input type="text" id="{{uniqueId}}"/></div>',
link: function (scope) {
scope.uniqueId = "test" + id++;
$('#' + scope.uniqueId).val(33);
}
}
});
我想用uniqueId为元素设置值,但我不能这样做。 你能帮助我吗? 有关Plunker的例子:example。 感谢。
编辑。
我找到了另一种解决方案。
.......
template: '<div><input type="text" id="{{uniqueId}}" ng-value="someModel"/></div>',
link: function (scope, elem, attrs) {
scope.uniqueId = "test" + id++;
scope.someModel = 887;
}
.......
示例:Plunker
答案 0 :(得分:2)
$digest
周期。更简单的方法是使用link
函数通常提供的内容,即访问三个变量scope
,elem
和attrs
,这样您就可以执行以下操作:< / p>
link: function (scope, elem, attrs) {
scope.uniqueId = "test" + id++;
elem.children().first()[0].value = 33;
}
这是你的插件的叉子