我有一种看起来像这样的消解:
.directive('gdInputField', function() {
return {
//will only work for elements, not attributes.
restrict: 'E',
template: "<label for='{{name}}'>{{label}}</label><input name='{{key}}' id='{{name}}' type='{{type}}' ng-required='{{required}}' /><p>{{entry.1949113882}}</p>",
scope: {
label: '@label',
name: '@name',
key: "@key",
required: "@required",
type: "@type"
},
};
})
我希望将使用@key设置的值添加为输入字段的模型名称。如果我设置ng-model='key'
。我得到的字符串是@key作为ng-model的内容。
这似乎是结果:
$scope={
someting: @key
}
我想要的是:
$scope={
@key: '';
}
如果用户在输入中写入内容,则应更新@key。
此外,模型出价的当前名称是什么,或者我如何找到?
答案 0 :(得分:0)
重写您的代码如下
app.directive('gdInputField', function () {
return {
//will only work for elements, not attributes.
restrict: 'E',
template: "<label for='{{name}}'>{{label}}</label><input name='{{inputName}}' ng-model='key' id='{{name}}' type='{{type}}' ng-required='{{required}}' /><p>{{key}}</p>",
link: function (scope, elem, attrs) {
scope.inputName = attrs.key;
},
scope: {
label: '@label',
name: '@name',
key: "=",
required: "@required",
type: "@type"
},
};
});
关键是密钥应该是双向的,以用作模型。