Javascript Angular无法设置未定义的属性

Javascript Angular无法设置未定义的属性,javascript,angularjs,Javascript,Angularjs,我不太明白为什么以下方法不起作用: main.html <div class="MainCtrl"> <h1>{{message.test}}</h1> </div> 当我运行代码时,我可以看到一个错误,该错误说明: TypeError:无法设置未定义的属性“test” 在纽约 在调用()时 在Object.instantiate()处 在 在$route.link()处 在kfn()处 在nodeLinkFn() 在kfn()处 在publ

我不太明白为什么以下方法不起作用:

main.html

<div class="MainCtrl">
  <h1>{{message.test}}</h1>
</div>
当我运行代码时,我可以看到一个错误,该错误说明:

TypeError:无法设置未定义的属性“test” 在纽约 在调用()时 在Object.instantiate()处 在 在$route.link()处 在kfn()处 在nodeLinkFn() 在kfn()处 在publicLinkFn() 在名称处。$get.boundTranscludeFn()


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

如果要为未定义的对象定义属性,则必须在设置属性之前初始化对象

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

您的测试不存在于消息中,您需要执行
$scope.message={}之前,
$scope.message.test=“blablabla”

消息
在您的代码中不是对象,您必须使其:

$scope.message = { test: 'blablabla' };

您应该初始化
$scope.message
对象,但要安全地进行初始化(以防它在其他地方定义,可能在某些情况下):

$scope.message = { test: 'blablabla' };
$scope.message = $scope.message || {}; 
$scope.message.test = "blablabla";