我一直在开发一个应用程序,但这似乎不起作用。通常,如果我们在范围中添加一个值,我认为它需要在应用程序中更新..这里是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。但它似乎没有用。
答案 0 :(得分:4)
尝试使用:
$ionicPlatform.ready(function() {
$scope.$apply(function () {
$scope.njk='sss';
});
});
Angular通常会自动处理摘要,但是如果您更改Angular上下文之外的任何模型(在本例中为$ionicPlatform.ready
函数),则需要通过手动调用$ apply()来通知Angular更改。这就像告诉Angular您正在更改某些模型,它应该激活观察者,以便您的更改正确传播。