我想知道是否有人可以帮助我?我仍然对角度很新,并且遇到一个问题,即我的选择控件最初没有选择正确的值,而是更新后续更改。
我的HTML如下:
<select class="form-control" ng-model="job.SalutationId" ng-init="job.SalutationId=0">
<option value="0">Salutation</option>
<option ng-repeat="salutation in lookups.salutations" value="{{salutation.Id}}">{{salutation.Name}}</option>
</select>
我正在通过WebApi加载一个对象,该对象代表一个作业和当前的查找值 - 这个目前在服务中并不是当前的所有测试,但是js看起来像:
function loadJob() {
$http({ method: 'GET', url: url + 'jobs/2' }).
then(function (response) {
$scope.lookups.salutations = response.data.Salutations;
$scope.job = response.data.Job;
}, function (response) {
displayJobErrorMessage(response.data || "Request failed");
});
}
HTML控件填充了查找中的值,job.SalutationId
设置为1(我通过将值输出到另一个控件来验证这一点)但是它不会自动选择MR直到我更改另一个控件中的模型值。
我想要发生的是,它会自动选择MR,因为这是作业本身的值。
有人可以找出我出错的地方吗?我还尝试使用$scope.$apply
手动更新范围,以查看它是否有效但无效。
提前致谢。
卡尔
答案 0 :(得分:0)
真正的学校男孩错误。
AngularJS在javascript中使用===运算符来检查值和类型,并且select控件是基于字符串的,它不喜欢我的范围使用整数值。
要解决此问题,我只需将查找ID转换为范围内的字符串值。
这不会导致API端出现问题,因为它会自动将字符串解析为整数。