我想添加错误消息,如下所示:
<md-input-container>
<label>Last Name</label>
<input name="lastName" ng-model="lastName" required>
<div ng-messages="userForm.lastName.$error" ng-show="userForm.lastName.$dirty">
<div ng-message="required">Here is some message</div>
</div>
</md-input-container>
但是想要从控制器调用渲染:
callMessage() {
// How can I implement this?
}
答案 0 :(得分:1)
我假设您没有使用controller as
语法,因此您必须在控制器中的$scope
对象上定义一个函数:
function YourController($scope,...){
$scope.callMessage = function(){
//you can access your form using $scope.userForm
return "yourString";
}
}
您的标记将更改如下:
<md-input-container>
<label>Last Name</label>
<input name="lastName" ng-model="lastName" required>
<div ng-messages="userForm.lastName.$error" ng-show="userForm.lastName.$dirty">
<div ng-message="required">{{callMessage()}}</div>
</div>
重要的是你在$scope
上定义你的函数,这样Angular实际上可以将标记中的{{callMessage()}}
部分绑定到你的函数。
答案 1 :(得分:0)
你可以这样做,
BufferError: memoryview: underlying buffer is not writable
来自控制器
<md-input-container>
<label>Last Name</label>
<input name="lastName" ng-model="lastName" required>
<div ng-messages="userForm.lastName.$error" ng-show="vm.callMessage(userForm.lastName.$dirty)">
<div ng-message="required">{{vm.myMessage}}</div>
</div>
答案 2 :(得分:0)
在设置表单后,您可以直接在控制器中调用$ error。
查看强>
<md-input-container>
<label>Last Name</label>
<input name="lastName" ng-model="lastName" required>
<div ng-messages="userForm.lastName.$error" ng-show="userForm.lastName.$dirty">
<div ng-message="required">{{errorMsg}}</div>
</div>
</md-input-container>
<强>控制器强>
var isError = $scope.userForm.lastName.$error;
if (isError) {
$scope.errorMsg = 'Hey, this is error message';
}