无法更改Angular js中的变量,原因是

Cannot change the variable in Angular js, why?

本文关键字:变量 Angular js      更新时间:2024-03-22

你能帮忙吗。我在Fiddle中找到了这个例子。http://jsfiddle.net/terebentina/9mFpp/

我的问题是,为什么在Angular(在这个例子中)

$scope.widget = {title: 'abc'}; // works very well and ...
$scope.widget.title = 'abc'; // doesn't work

这是Javascript(widget.title)中对象的属性。我一直在想——我们可以随时设置它吗?我哪里错了?

$scope是一个Object,但$scope.widget在设置之前是未定义的。您可以先将其初始化为Object,然后设置属性,如下所示:

$scope.widget = {};
$scope.widget.title = 'abc';

或者你可以像小提琴一样,在初始化属性的同时对其进行初始化:

$scope.widget = {title: 'abc'};

第二个不起作用的原因是因为您需要首先初始化对象:

// initialize the object first
$scope.widget = {};
// and now you can set the title
$scope.widget.title = 'abc';

但这需要您键入2行代码。直接做这两件事有点短:

// Initialize the widget object and set its title property
$scope.widget = {title: 'abc'};

它不起作用,因为小部件对象没有定义(还不存在)

以下代码创建一个对象(包含值为"abc"的字段"title"),并将其分配给"$scope.widget"变量:

$scope.widget = {title: 'abc'};

以下代码将"abc"分配到"widget"对象的"title"字段:

$scope.widget.title = 'abc';

因此,为了工作,必须定义小部件变量