我想从我的控制器中预填充一个输入字段:
这是输入字段:
<input class="form-control" type="text" name="partnerName" placeholder="Completeaza numele partenerului" ng-model="partnerNameModel.field" required validate-field="partnerNameModel">
在我的控制器中,如果我这样做:
partnerNameModel.field = 'test';
我得到以下错误:
TypeError: Cannot set property 'field' of undefined
所以,我不得不这样做:
$scope.partnerNameModel = {field: 'dsad'};
我这个做法好吗?
是否有更好的方法来预填充字段
您可以通过执行来创建对象partnerNameModel
$scope.partnerNameModel = {}
在控制器的顶部,您可以使用点语法来设置值,如
$scope.partnerNameModel.value = "foo"
$scope.partnerNameModel.bar = "lemons"
这就是我个人在Angular 中处理对象的方式
当您处理具有占位符的输入时,不设置默认值是有意义的。
然而,你正在使用的对象必须被创建,否则它将是一个巨大的痛苦。
我建议您简单地使用:
$scope.partnerNameModel = {};
请确保初始化不使用非空默认值的字段(例如下拉列表)。
$scope.partnerNameModel = {
myDrop: $scope.myList[0]
};