我试图通过在这样的保存功能之后将ng-class定位到我的dll中来附加一个项目,但我似乎无法弄清楚什么是错的,我是AngularJs的新手,请提出建议:
我的DDL:
<productbatchselectorcreate-dropdown ng-class="batch-{{item.productId}}" name="productBatch" id="{{item.productId}}" ng-model="item.productBatchId" ng-click="$event.stopPropagation();" class="ui-select2"></productbatchselectorcreate-dropdown>
指令:
$scope.save = function () {
$scope.batch.productId = productId;
productService.addBatch($scope.batch)
.success(function (data) {
$('.batch-' + productId).append(new Option(data.name, data.productBatchId, false, false));
$modalInstance.dismiss('cancel');
})
};
答案 0 :(得分:0)
我认为你的方向是错误的。使用jQuery直接修改DOM通常不是Angular的好方法。您的下拉列表选项应该绑定到范围上的某个值(我不确定您的指令是什么)。您希望将新对象添加到下拉项绑定的范围值,而不是使用jQuery修改DOM。
我在一个简单的选择http://plnkr.co/edit/jdCzqy3LZ5UXfskGdUMr?p=preview
中做了一个快速示例,展示了它的工作原理由于你正在使用自定义指令,我猜你是在指令模板中使用ng-repeat创建选项。如果是这样,同样适用,无论你重复什么,都应该修改范围对象,而不是直接修改DOM。