【问题标题】:How to avoid angular.js preemptively fetching data until certain actions如何避免 angular.js 在某些操作之前抢先获取数据
【发布时间】:2013-09-10 22:38:53
【问题描述】:

刚开始使用 angular.js 并实现了一个指令,该指令从仅在单击按钮时定义的范围内的属性中读取。 UI 看起来也很好,因为指令部分仅在单击按钮时显示。但是,在第一次加载页面时,控制台中会出现一条错误消息,提示“无法读取未定义的某些属性”。

我一定违反了一些角度原则,但我不知道如何解决它。感谢您的帮助!

注意:因为这是一个普遍的问题,所以没有做任何事情。

【问题讨论】:

  • 不,这可能是一个常见问题,但答案总是与您编写的代码有关,因此您需要在某处提供。

标签: angularjs


【解决方案1】:

一般来说,如果你有类似的代码模式

$scope.myObject.property

那么当myObjectundefined 时,您会看到错误。

消除代码工作错误的一种可能方法是确保在打算引用任何属性时始终初始化对象.

您可以在引用该属性之前放置此行。

$scope.myObject = {};

或者做

if($scope.myObject !== undefined){
    ...
}

这里没有火箭科学。

【讨论】:

  • 感谢您的注意 --- 我确实做到了,正如皮诺曹指出的那样,我认为最初的问题并不完全是一个声明问题,因为对象的部分显示而部分没有吨。错误消息来自我的控制台日志之一,而不是来自指令。但是我很难将它放在 jsfiddle 上,因为它的一部分通过回调与后端 $resource 对话。关于如何更好地呈现代码的任何想法?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 2021-03-03
  • 2011-06-21
  • 1970-01-01
  • 2021-10-12
相关资源
最近更新 更多