参数默认 ngMessages 指令
Parameter default ngMessages directive
为了在 AngularJS Material 输入上做一些工作,我想知道我是否可以参数化所有 ngMessages 指令 而无需创建新指令 或在各处添加我的属性。
<md-input-container class="md-block" flex>
<label>Label</label>
<input type="number" name="number" ng-model="number" min="0" max="10" required>
<div ng-messages="form.number.$error" md-auto-hide="false"> <!-- mdAutoHide -->
<div ng-message="required">This is required</div>
<div ng-message="min">Min is 0</div>
<div ng-message="max">Max is 10</div>
</div>
</md-input-container>
是否有解决方案可以在所有 ngMessages 上自动添加 mdAutoHide 属性?
你可以专门为此写一个指令。
这段短代码是错误的,因为我很长时间没有做 angular js。
但是你可以看到方法:
//directive
angular.module('app').directive('messageHidden', function () {
var tpl = '<div>ng-messages="form.number.$error" md-auto-hide="false"></div>'
for(var input in $scope.inputs){
tpl += '<div ng-message="'+input.type+'">'"+input.message+"'</div>';
}
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {name: '@inputs'},
template: tpl
}
});
//ctrl
$scope.inputs = [
{
"type" : "required",
"message" : "this is required"
},
{
"type" : "min",
"message" : "min is 0"
},
{
"type" : "max",
"message" : "max is 10"
},
]
//查看
<messageHidden inputs="$scope.inputs"/>
为了在 AngularJS Material 输入上做一些工作,我想知道我是否可以参数化所有 ngMessages 指令 而无需创建新指令 或在各处添加我的属性。
<md-input-container class="md-block" flex>
<label>Label</label>
<input type="number" name="number" ng-model="number" min="0" max="10" required>
<div ng-messages="form.number.$error" md-auto-hide="false"> <!-- mdAutoHide -->
<div ng-message="required">This is required</div>
<div ng-message="min">Min is 0</div>
<div ng-message="max">Max is 10</div>
</div>
</md-input-container>
是否有解决方案可以在所有 ngMessages 上自动添加 mdAutoHide 属性?
你可以专门为此写一个指令。 这段短代码是错误的,因为我很长时间没有做 angular js。 但是你可以看到方法:
//directive
angular.module('app').directive('messageHidden', function () {
var tpl = '<div>ng-messages="form.number.$error" md-auto-hide="false"></div>'
for(var input in $scope.inputs){
tpl += '<div ng-message="'+input.type+'">'"+input.message+"'</div>';
}
return {
restrict: 'E',
replace: true,
transclude: true,
scope: {name: '@inputs'},
template: tpl
}
});
//ctrl
$scope.inputs = [
{
"type" : "required",
"message" : "this is required"
},
{
"type" : "min",
"message" : "min is 0"
},
{
"type" : "max",
"message" : "max is 10"
},
]
//查看
<messageHidden inputs="$scope.inputs"/>