我有一个问题,我在两个页面之间共享一个模态,两个页面都使用相同的angularJs版本(v1.2.14),并且两个页面都调用完全相同的指令(ui.select2)。模态内部的选择框在一个页面上工作,而在另一个页面上,它只是作为默认选项保留。
作为一个假设,我尝试以不同的风格实现选择框,例如选项上的ng-repeat,而不是使用轨道。然而,这会导致其他页面选择要中断的选项。我只能让一页工作,另一页打破。
奇怪的是,在后台绑定值正在正确更新:
<div class="col-md-10">
<select ui-select2="{width: '100%'}" class="form-control"
ng-model="Model.DocumentTypeId"
ng-options="documentType.DocumentTypeId as documentType.DocumentTypeDescription for documentType in Model.DocumentTypes track by documentType.DocumentTypeId">
<option value="">Select Document Type</option>
</select>
</div>
如果你对为什么会这样做有任何建议,那就太好了。
以下是控制器的严重截断视图:
module Views.TMDocumentUpload {
export class DocumentUpload implements IDocumentUpload {
public static SetupDocumentUploadDialog = "onSetupDocumentUploadDialog";
public Init(model: DocumentUploadViewModel) {
var self = this;
if (self.$scope.Model.HideDocumentType || self.$scope.Model.DocumentTypeId == null) {
if (self.$scope.Model.DocumentTypes.length == 1) {
self.$scope.Model.DocumentTypeId = self.$scope.Model.DocumentTypes[0].DocumentTypeId;
}
}
}
constructor(public $scope: IDocumentUploadScope, $http: ng.IHttpService, $timeout: ng.ITimeoutService) {
$scope.isAllSelected = true;
$scope.ShareConfig = [];
$scope.Model.DisplayShareOptions = false;
$scope.Init = () => {
var self = this;
$scope.$on(DocumentUpload.SetupDocumentUploadDialog,
(e: ng.IAngularEvent, args?: Views.TMDocumentUpload.DocumentUploadViewModel) => {
self.$scope.Model = new DocumentUploadViewModel();
$http.get("/GetInitialModel")
.success(function (data: DocumentUploadViewModel) {
angular.extend(data, args);
self.Init(data);
});
});
};
}
}
DocumentUpload.$inject = ["$scope", "$http","$timeout"];
}
答案 0 :(得分:1)
我已经通过删除ui-select2解决了这个问题,这似乎与我的第二页中的另一个指令产生了某种冲突。