$ ionicplatform里面的$ scope不起作用

时间:2016-05-19 07:17:38

标签: javascript angularjs cordova ionic-framework angularjs-scope

我一直在开发一个应用程序,但这似乎不起作用。通常,如果我们在范围中添加一个值,我认为它需要在应用程序中更新..这里是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中并已分配值,但它并未反映在应用程序中。但警报框带有值。我在准备好的功能中非常需要它。因为cordova.file不能在那之外工作。我也试过了$ rootScope。但它似乎没有用。

1 个答案:

答案 0 :(得分:4)

尝试使用:

$ionicPlatform.ready(function() {
  $scope.$apply(function () {
    $scope.njk='sss';
  });
});

Angular通常会自动处理摘要,但是如果您更改Angular上下文之外的任何模型(在本例中为$ionicPlatform.ready函数),则需要通过手动调用$ apply()来通知Angular更改。这就像告诉Angular您正在更改某些模型,它应该激活观察者,以便您的更改正确传播。