当我在HTML中使用它时,我试图通过在它上面使用模型属性来访问指令的隔离范围。例如
<div controller="parent">
<hello-world data-ng-model="hw"/>
<input type="submit"/>
</div>
父母的控制者:
function($scope){
$scope.submit = function(){
alert($scope.hw.t);
}
};
hello-world的指令:
app.directive('helloWorld', function() {
return {
link: function(scope, element, attrs){
scope.t = 'test';
},
replace: true,
restrict: 'E',
scope: {},
template: '<h5>Hello world {{t}}</h4>'
};
});
t在隔离范围中定义,因为它显示正确。但是,当我单击提交按钮时,我收到错误,因为未定义hw。 (因为hello-world范围没有被分配给父级的&n;&lt; hw&#;;范围变量。我怎样才能将hw定义为hello-world指令的范围?我的用例是制作一个日期选择器,公开通过它的范围选择的日期。比如
<date-picker ng-model="date1"/>
<date-picker ng-model="date2"/>
在指令的范围内,我会确保定义月份,年份等。然后在父控制器中,我可以使用$scope.date1.month
和类似的方式来访问所选的日期。
答案 0 :(得分:2)
在您的评论之后,您似乎需要使用 ngModel 制作自定义可验证元素。
根据ngModel
's documentation,可以手动使用ngModelController
来完成。以下页面应包含您需要的所有相关信息(请参阅示例中的script.js
):https://docs.angularjs.org/api/ng/type/ngModel.NgModelController