这是我的代码:
restaurantApp.directive("formfield", function(){
return {
restrict: "E",
$scope: {
formType: "@"
},
template: '<input type="{{formType}}">',
link: function(scope, element, attrs){
alert(scope.formType);
}
}
});
并在我的HTML文件中:
<formfield formType="{{inputType}}">
</formfield>
并在我的控制器中:
$scope.inputType="password";
问题是我在提示框中收到了未定义的值,而不是要打印密码。
答案 0 :(得分:2)
在HTML form-type
中使用formType
。在HTML中将值传递给它们时,如果在指令JS代码中使用camel case定义的范围变量,则用短划线分隔单词。
<formfield form-type="{{inputType}}">
</formfield>
此外,隔离范围声明为scope
而非$scope
,因此以下
$scope: {
formType: "@"
}
应改为:
scope: {
formType: "@"
}