AngularJs Select 选项绑定问题共享模式
AngularJs Select Option binding Issue shared modal
我有一个问题,我在两个页面之间共享一个模式,两个页面都使用相同的 angularJs 版本 (v1.2.14),并且两个页面调用完全相同的指令 (ui.select2).模态框内的 select 框在一页上有效,而在另一页上它只是保留为默认选项。
仅供参考,我尝试以不同的样式实现 select 框,例如ng-repeat 选项,而不是使用 track by。然而,这会导致其他页面 selecting 选项中断。我只能让一页工作,另一页中断。
奇怪的是,绑定值在后台正确更新:
<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"];
}
我已经通过删除 ui-select2 解决了这个问题,这似乎与我第二页中的另一个指令发生了某种冲突。
我有一个问题,我在两个页面之间共享一个模式,两个页面都使用相同的 angularJs 版本 (v1.2.14),并且两个页面调用完全相同的指令 (ui.select2).模态框内的 select 框在一页上有效,而在另一页上它只是保留为默认选项。
仅供参考,我尝试以不同的样式实现 select 框,例如ng-repeat 选项,而不是使用 track by。然而,这会导致其他页面 selecting 选项中断。我只能让一页工作,另一页中断。
奇怪的是,绑定值在后台正确更新:
<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"];
}
我已经通过删除 ui-select2 解决了这个问题,这似乎与我第二页中的另一个指令发生了某种冲突。