我一直在开发一个应用程序,但这似乎不起作用。通常,如果我们向范围添加一个值,我认为它需要在应用程序中更新。这是 index.html
<body ng-app="starter">
<ion-nav-view>
<ion-view>
<ion-side-menus>
<ion-side-menu-content>
<ion-nav-bar class="top-nav">
</ion-nav-bar>
<ion-content class="body" ng-controller="frontpage">
ss {{njk}} dd
</ion-content>
</ion-side-menu-content>
<ion-side-menu side="left">
</ion-side-menu>
</ion-side-menus>
</ion-view>
</ion-nav-view>
这是 app.js
var main=angular.module('starter', ['ionic','ngCordova'])
.run(function($ionicPlatform) {
$ionicPlatform.ready(function() {
if(window.cordova && window.cordova.plugins.Keyboard) {
cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
cordova.plugins.Keyboard.disableScroll(true);
}
if(window.StatusBar) {
StatusBar.styleDefault();
}
});
});
main.controller("frontpage", function($scope,$cordovaFile,$ionicPlatform) {
$ionicPlatform.ready(function() {
$scope.njk='sss';
alert($scope.njk);
});
});
问题出在 $scope.njk 上。我已将它添加到 $ionicPlatform.ready 中并分配了值,但它并未反射(reflect)在应用程序中。但警报框随值(value)而来。我非常需要它在 ready 函数中。因为 cordova.file 不能在外面工作。我也尝试过 $rootScope。但这似乎不起作用。
最佳答案
尝试使用:
$ionicPlatform.ready(function() {
$scope.$apply(function () {
$scope.njk='sss';
});
});
Angular 通常会自动处理摘要,但是如果你在 Angular 上下文之外更改任何模型(在本例中是 $ionicPlatform.ready
函数),那么你需要通过调用通知 Angular 这些更改$apply() 手动。这就像告诉 Angular 您正在更改某些模型并且它应该触发观察者以便您的更改正确传播。
关于javascript - $ionicplatform 内的 $scope 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37316394/