Angularjs 在页面准备好后回填值不显示

类似于jQuery的$(document).ready(), 已经在Controller里加入了angular.element(document).ready()方法,不过对于$scope进行属性上的赋值操作后,如$scope.userId = 'aaa';页面不自动把aaa显示出来,要在其他input上做了些操作的时候才显示出来,这是为什么,如何解决它呢?

阅读 6.8k
1 个回答

能提供一下你的初始化部分代码吗?

一般来说,除非想要手动初始化 Angular 应用,否则的话是不需要调用 angular.element(document).ready() 方法的,详情见:Bootstrap。由于不清楚你是否知道这个细节,或者你的确是要手动初始化,所以想看看你的初始化部分好明确你到底是想要做什么。

如果你只是想一个常规的 Angular 应用,别用 angular.element(document).ready() 手动初始化,按照常规的步骤,用 ng-app 就可以了,不用这么麻烦。

顺便一提,angular.element(document) 可以简写为:$document(只要别忘了注入此依赖)。


更新:

不知道你是否尝试过写一个 $service 来达到你的目的,就好像异步去获取后端提供的数据一样,我想也应该是可以。

但如果你一定要使用 angular.element(document).ready 的话,这样写应该可以:

// 假设你有一个 controller 如下:
var MyController($scope) {
    $scope.userId = null;
};

// 初始化的时候为其赋值
angular.element(document).ready(function () {
    var data = // 这里是你取的 sqlite 数据
    var $injector = angular.bootstrap(document, ['myApp']);
    var $controller = $injector.get('$controller');
    var MyController = $controller('MyController');
    MyController.userId = data;
});
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题