Javascript angular中select/option标记中的奇怪行为
这是我的代码片段:Javascript angular中select/option标记中的奇怪行为,javascript,angularjs,Javascript,Angularjs,这是我的代码片段: <select class="form-control" name="" id="" ng-model="offerId"> <option value="">Choose</option> <option ng-repeat="offer in offers " value="{{ offer.id }}" ng-selected="offerId == offer.id">
<select class="form-control" name="" id="" ng-model="offerId">
<option value="">Choose</option>
<option ng-repeat="offer in offers " value="{{ offer.id }}"
ng-selected="offerId == offer.id">
{{offer.supplier.name}}
({{offer.request.name}})
</option>
</select>
$scope.clearAttachedFiles = function () {
$scope.attachedFiles = {uploads: null, links: null};
};
$scope.$watch('offerId', function (a, b) {
if ($scope.offerId) {
offerId = $scope.offerId;
}
if ((typeof a == 'undefined' || typeof a == 'null') && (typeof b == 'undefined' || typeof b == 'null')) {
return;
}
if (a === '') {
$scope.level = 'EVENT';
$scope.privateMessage = true;
$scope.offer = null;
}
else {
$scope.level = 'OFFER';
$scope.privateMessage = false;
angular.forEach($scope.offers, function (offer) {
if (offer.id == a) {
$scope.offer = offer;
}
});
}
$scope.getPaginatedActivities();
$scope.resetActivitiesList();
$scope.currentPage = 1;
});
你用错了,ng选项的存在是有原因的 当您使用ng repeat时,您正在为阵列中的每个选项添加一个监视程序,因此性能可能非常差。另外,执行value={{}}也会有问题,因为这不是正确的方法,这取决于编译时间和其他因素,select可以将{{}作为值,而不是计算表达式。可能是选择空白的原因。 使用ngOptions,灵活且易于操作。以下是文件:
问任何与之相关的问题 “我从其他组件/触发器更改ngModel(offerId)”您如何更改并显示代码。还显示了我从其他组件在ngClick中的方法调用中更改模型的结构。提供的数组的JSON结构很长,我怎么能显示呢?是的,我确实使用了ngOptions,但以前使用的逻辑不起作用。所以我支持我当前的实现。所以改变逻辑使其工作,你应该使用ngOptions,只需粘贴代码,我们就可以使其工作!