我正在使用AngularJs和Restangular构建应用程序以用于REST服务。
现在我有一个表单,我必须允许用户使用select从对象列表中添加多个对象。 但每次用户从select中选择一个对象时,我需要从列表中过滤掉该对象,以便进行下一次选择。
我已尝试创建对象数组的副本并删除我之前选择中添加的项目,但我无法访问控制器内的$ scope.purpose.purpose,仅在模板中
这是我的代码:
HTML:
<div class="form-group" ng-repeat="i in hardware.purposes track by $index">
<form-label>Namjena: {{i}}</form-label>
<div class="col-sm-8">
<select class="form-control" placeholder=""
ng-model="hardware.purposes[$index]" ng-required="true" >
<option ng-repeat="item in purpose.purpose" value="{{item.id}}">{{item.name}}</option>
</select>
</div>
<div class="col-sm-1">
<button type="button" href="" ng-model="button" ng-click="addNewPurpose()" ng-disabled="addMoreDisabled"><span class="glyphicon glyphicon-plus"></span></button>
</div>
</div>
控制器:
app.controller('AddHardwareCtrl',
function HardwareListCtrl($scope, PurposeService, $location, $route, $routeParams) {
$scope.purpose = PurposeService.one().get().$object;
$scope.hardware = {
name: "",
description: "",
laboratory: "",
organization: "",
owner: "",
purposes: [""],
contact_person: "",
purchase_value: "",
acquisition_date: Date.now()
};
$scope.addNewPurpose = function() {
$scope.hardware.purposes.push("");
if($scope.hardware.purposes.length == $scope.purpose.purpose.length){
$scope.addMoreDisabled = true;
}
else{
$scope.addMoreDisabled = false;
}
};
});
有人可以帮帮我吗?在过去的5天里,我试图解决这个问题,这让我发疯了。