我有绑定问题。我想验证电子邮件地址
一个。 <input type="email" required ng-model="emailAddress" name="{{name}}" />
B中。 <input type="email" required ng-model="emailAddress" name="emailAddress2" />
&#39; A&#39;是不行,我想使用&#39; A&#39;表达
但是,B正在工作。
我想绑定表达式使用&#39; A&#39;表达
.directive('emailInput', function() {
return {
require: '^form',
restrict: 'E',
template: '<input type="email" required ng-model="emailAddress" name="{{name}}" />',
scope: {
send2: '&'
},
link: function(scope, elem, attrs){
scope.name="emailAddress2"; // <--- this is not binding to input element
}
};
});
HTML
<email-input></email-input> inputIsValid={{myForm.emailAddress2.$valid}}
答案 0 :(得分:0)
您需要设置名称,然后编译angular的input-element以注意新名称并使$ valid工作。
...
link: function (scope, elem) {
var input = elem.children()[0];
input.name = "emailAddress2";
$compile(input)(scope);
}
...
答案 1 :(得分:0)
从您的HTML中,按如下所示进行修改:
<email-input name="name"></email-input> inputIsValid={{myForm.emailAddress2.$valid}}
现在,您在指令(scope.name = "whatever"
)中更改的任何值都将绑定到模板。
我希望它有所帮助。