javascript - Angular 无法设置未定义的属性

标签 javascript angularjs

我不太明白为什么以下内容不起作用:

main.html

<div class="MainCtrl">
  <h1>{{message.test}}</h1>
</div>

主要.js

angular.module('myApp')
  .controller('MainCtrl', function(someService, $location, $scope) {

    $scope.message.test = "blablabla";

  }
});

当我运行代码时,我会遇到一个错误:

TypeError: Cannot set property 'test' of undefined at new (http://localhost:9000/scripts/controllers/main.js:13:25) at invoke (http://localhost:9000/bower_components/angular/angular.js:4473:17) at Object.instantiate (http://localhost:9000/bower_components/angular/angular.js:4481:27) at http://localhost:9000/bower_components/angular/angular.js:9108:28 at $route.link (http://localhost:9000/bower_components/angular-route/angular-route.js:977:26) at invokeLinkFn (http://localhost:9000/bower_components/angular/angular.js:8746:9) at nodeLinkFn (http://localhost:9000/bower_components/angular/angular.js:8246:11) at compositeLinkFn (http://localhost:9000/bower_components/angular/angular.js:7637:13) at publicLinkFn (http://localhost:9000/bower_components/angular/angular.js:7512:30) at name.$get.boundTranscludeFn (http://localhost:9000/bower_components/angular/angular.js:7656:16)

显然我遗漏了一些非常明显的东西..

最佳答案

您正在为一个未定义 对象定义一个属性,您必须在设置属性之前初始化您的对象。

$scope.message = {};
$scope.message.test = 'bla';

关于javascript - Angular 无法设置未定义的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32520271/

相关文章:

javascript - AngularJS 使用父 Controller 变量的值创建指令范围

javascript - jQuery 矢量 map 中的切换功能

javascript - 在 Angular 2 中从 ngFor 生成子组件

javascript - 对 $scope 的更改不适用

javascript - 如何以 Angular 读取模块与 Vanilla JS 库?

javascript - 我是wikipedia api调用,页面在jquery ajax调用后自动重新加载。页面内容显示然后重新加载

javascript - 使用 jQuery,如何在指定 CSS 类的 sibling 中查找元素的索引

javascript - 在 angularjs 中点击时制作工具提示

javascript - 获取选择列表中最近添加/更改的项目(通过 jQuery 或 Angular JS)

javascript - 使用 ui-routing 在 Angular 中路由怪异