控制器通过异步请求得到的数据怎么在指令中使用?

我在控制器下面通过一个promise得到的数据,赋值给控制器下的一个作用域变量,我在指令上双向绑定了这个变量,打印出来的值是undefined,我在想是不是异步请求还没返回值就已经执行了,有没有其他方法让我能在指令中使用异步请求回来的数据?

阅读 4.7k
4 个回答

最后放弃了使用指令了,用模板递归

正常来讲这个逻辑应该是正确的,我怀疑你是promise用的不对,贴代码看看吧是不是没有在then方法里写数据?

如果你写的是angular,不建议你在controller里面进行数据请求,而是放在service里面更好。
你在指令上面双向绑定这个变量,这个变量一开始就是undefined,这是没错。因为controller会在link函数之前运行,$watch初始化时,也会运行一次watchFn,这时候拿到的值就是undefined.

Service.getData().then(fn() {})

使用service

指令watch 如果newVal空则不执行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题