我有以下情况:
<timeZone ng-model="formModel.timeZone"
表单不关心时区列表,这些都包含在指令中。它只关心获取和设置选定的时区。
代码 - 表格:
<time-zone name="preferredTz" ng-model="profileDetails.preferredTz" ng-required="true"></time-zone>
代码 - 指令(JS):
.directive('timeZone', function (staticCommonResourcesAPI) {
return {
restrict: 'E',
require: 'ngModel',
templateUrl: 'shared/partials/timezoneField.tpl.html',
link: function(scope, element, attr, ngModel){
scope.timezones = [];
staticCommonResourcesAPI.getTimezones().then(function (response) {
scope.timezones = response.payload;
});
}
};
});
代码 - 指令(HTML模板)
<ui-select
id="timezoneCode"
name="timezoneCode"
required="true"
theme="bootstrap"
ng-disabled="disabled || signupStatusTag">
<ui-select-match>{{$select.selected.code}}</ui-select-match>
<ui-select-choices repeat="timezone.code as timezone in timezones | filter: $select.search" class="ui-select-override-top-style">
<span class='no-underline'>{{timezone.name}}</span>
</ui-select-choices>
</ui-select>
如果我了解ui-select如何正常工作,我需要将profileDetails.preferredTz
与uiSelectModel.selected
绑定。
我已尝试使用scope : true
,但到目前为止发生的所有情况都是ui-select
完全使用不同的模式,或最终设置profileDetails.preferredTz
在初始化时未定义。
答案 0 :(得分:0)
尝试使用nForm
<ng-form timezone ng-model="myModel">
...uiSelect
</ng-form>