从 $http 执行 GET 调用后无法更新 $scope
Unable to update $scope after executing GET call from $http
我正在使用 visual studio 开发 Cordova-Hyrbrid 应用程序。
对于 select 控件,我使用名为 ionic-model-select (http://inmagik.github.io/ionic-modal-select) 的插件。
select 的值应该来自 webapi 调用。如果我调试,我可以看到 $scope.language 正在填充,但是,select 显示空白 window.
我在调用后尝试了 $scope.$apply() 和 $scope.$digest(),但是它不起作用。知道为什么我没有在 select 控件中获取值吗?
angularjs代码:
$http.get(sharedProperties.getURLOfLanguagesWebAPI()).then(function (data) {
allData = sharedProperties.convertXml2JSon(data.data);
for (var i = 0; i < allData.OVRLookupData.Languages.length; i++) {
$scope.languages.push({ "id": parseInt(allData.Languages[i].LanguageCode), "name": allData.Languages[i].Language });
}
$scope.$apply();
$scope.loadingLangues = false;
}, function (data) {
console.log(data);
});
HTML 就像:
<div ng-show="!loadingLangues" ng-class="{'has-error':errLan}">
<label name="Language" class="item item-selectbox">
<span class="input-label" style="float:left">Select Language</span>
<button class="button button-dark button-outline icon-right ion-arrow-down-b"
modal-select ng-model="selectedValue"
options="languages"
on-select="languageChange(newValue)"
modal-title="Select Language">
{{ selectedValue.name || 'Select Language'}}
<div class="option">{{option.name}}</div>
</button>
</label>
<label ng-if="errLan" class="item">
<span class="form-error item-text-wrap">Please select language.</span>
</label>
</div>
这是一个bug that has been fixed yesterday。
由于 bower 包和 npm 包都没有更新,如果您想使用该功能,您需要从 GitHub 获取源代码。
我正在使用 visual studio 开发 Cordova-Hyrbrid 应用程序。 对于 select 控件,我使用名为 ionic-model-select (http://inmagik.github.io/ionic-modal-select) 的插件。
select 的值应该来自 webapi 调用。如果我调试,我可以看到 $scope.language 正在填充,但是,select 显示空白 window.
我在调用后尝试了 $scope.$apply() 和 $scope.$digest(),但是它不起作用。知道为什么我没有在 select 控件中获取值吗?
angularjs代码:
$http.get(sharedProperties.getURLOfLanguagesWebAPI()).then(function (data) {
allData = sharedProperties.convertXml2JSon(data.data);
for (var i = 0; i < allData.OVRLookupData.Languages.length; i++) {
$scope.languages.push({ "id": parseInt(allData.Languages[i].LanguageCode), "name": allData.Languages[i].Language });
}
$scope.$apply();
$scope.loadingLangues = false;
}, function (data) {
console.log(data);
});
HTML 就像:
<div ng-show="!loadingLangues" ng-class="{'has-error':errLan}">
<label name="Language" class="item item-selectbox">
<span class="input-label" style="float:left">Select Language</span>
<button class="button button-dark button-outline icon-right ion-arrow-down-b"
modal-select ng-model="selectedValue"
options="languages"
on-select="languageChange(newValue)"
modal-title="Select Language">
{{ selectedValue.name || 'Select Language'}}
<div class="option">{{option.name}}</div>
</button>
</label>
<label ng-if="errLan" class="item">
<span class="form-error item-text-wrap">Please select language.</span>
</label>
</div>
这是一个bug that has been fixed yesterday。
由于 bower 包和 npm 包都没有更新,如果您想使用该功能,您需要从 GitHub 获取源代码。