我已经搜索了很多内容,并且无法弄清楚我的代码中出了什么问题。从选择框中选择选项时,我的ng-model没有更新。
<div ng-controller="UserRegistrationController as userReg">
<select name="selectOrganisation" ng-required="true" ng-model="userReg.candidateData.BusinessUnit">
<option>Select Organisation</option>
<option>ABC</option>
<option>XYZ</option>
<option>KLM</option>
</select>
</div>
控制器:
(function (window) {
'use strict';
angular.module('myApp.userRegistration.controllers')
.controller('UserRegistrationController', ['UserRegistrationService', '$scope', function (UserRegistrationService, $scope) {
var vm = this;
vm.candidateData = {
FirstName: '',
LastName: '',
Email: '',
PhoneNumber: '',
JobId: '',
PrimarySkills: '',
SecondarySkills: '',
BusinessUnit: '',
CreatedBy: 'SPAN54',
CreatedOn: new Date(),
resume: '',
OfferStatus: 1,
Remarks: ''
};
}]);
})(window);
在我的post函数里面的console.log(vm.candidateData.BusinessUnit)(这里不可见),我看到&#34; &#34;
更新1:&#34;在我的代码中。我在这里粘贴时忽略了它。现在更新了上面的代码。但我的代码仍无效。
更新2:最后,我想出了这个问题。我在我的应用程序中使用Materialise.css,我的select元素被包含在div和ul-li中。因此,当用户选择一个值时,他实际上是在修改ul-li,而不是select元素。但我无法弄清楚如何捕捉这样的选定值。有任何想法吗?感谢。
更新3:添加了fiddle。
答案 0 :(得分:1)
尝试了您发布的代码。它为我工作。我在下面添加了Working Code Snippet。
这些更改是否有效?如果它仍然不适合你,你可以分享一个工作片段。
<div ng-controller="UserRegistrationController as userReg>
var app = angular.module('sample', []);
app.controller('UserRegistrationController', ['$scope', function($scope) {
var vm = this;
vm.candidateData = {
FirstName: '',
LastName: '',
Email: '',
PhoneNumber: '',
JobId: '',
PrimarySkills: '',
SecondarySkills: '',
BusinessUnit: '',
CreatedBy: 'SPAN54',
CreatedOn: new Date(),
resume: '',
OfferStatus: 1,
Remarks: ''
};
$scope.change = function() {
console.log(vm.candidateData.BusinessUnit);
}
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<body ng-app="sample">
<div ng-controller="UserRegistrationController as userReg">
<select ng-change="change()" name="selectOrganisation" ng-required="true" ng-model="userReg.candidateData.BusinessUnit">
<option>Select Organisation</option>
<option>ABC</option>
<option>XYZ</option>
<option>KLM</option>
</select>
</div>
</body>
答案 1 :(得分:0)
这是您的工作代码JS FIDDLE 你错过了ng-controller中的'''
<div ng-controller="UserRegistrationController as userReg">