【问题标题】:Angularjs: how load model in lazy modeAngularjs:如何在惰性模式下加载模型
【发布时间】:2016-01-27 19:28:13
【问题描述】:

我想在惰性模式下加载一些数据。 特别是,假设我有一个像这样的对象:

$scope.person = {
   name: 'Stefano',
   surname: 'Rossi',
   address: 'Orange Road',
   city: { 
      clazz: 'foo.bar.City',
      id: 5, 
      lazy: true 
  }
}

使用 angular,我可以毫无问题地将前三个属性绑定到 html 标签。

<input ng-model="person.name">
<input ng-model="person.surname">
<input ng-model="person.address">

而且效果很好。

但是假设我想添加城市的解码,如果对象是惰性的,我可以交互 ngBinding 或 ngModel 进行测试,因此通过承诺获得真正的价值(我认为通过 $http 服务获得)

我尝试扩展 ngmodel 但没有正确的 $scope...

https://jsfiddle.net/qq4gqn6t/13/

有人知道如何与 ngmodel o ngbinding 交互吗?

提前致谢

【问题讨论】:

  • 不确定我是否理解正确,但如果您想从其他地方获取数据,您通常会在控制器中执行此操作,以处理承诺,一旦解决,您将其添加到范围,从那里它将自动在视图上可用(通过 2 路数据绑定)。

标签: javascript angularjs angularjs-ng-model ng-bind


【解决方案1】:

由于双向数据绑定模型一旦安装在视图上就可能会被延迟加载。 这是一个在事件上加载模型的粗略示例,使您能够进行任何其他更改。

$scope.loadlater = function() {
    $scope.person = {
      name: 'Stefano',
      surname: 'Rossi',
      address: 'Orange Road',
      city: {
        clazz: 'foo.bar.City',
        id: 5,
        lazy: true
      }
    }
  }

https://jsfiddle.net/qq4gqn6t/14/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-01-29
    • 2019-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    相关资源
    最近更新 更多