index.html
<body ng-controller="StoreController as s">
<h1 ng-click="s.changeValFunc()">{{s.carname}}</h1>
<h2>{{s.carname}}</h2>
</body>
app.js
var app = angular.module('store', []);
app.controller('StoreController', function() {
this.carname = "Volvo";
this.changeValFunc = function(){
this.carname="BMW";
}
});
单击h1标签会将h1和h2的{{carname}}更改为BMW。是不是“ this”是指被单击的当前元素。对如何在视图之间共享控制器属性感到困惑。
最佳答案
控制器功能用new
实例化。这意味着它的工作方式如下:
function StoreController() {
this.carname = "Volvo";
this.changeValFunc = function () {
this.carname="BMW";
}
};
var s = new StoreController();
console.log(s.carname); // Volvo
视图中的
s
是对实例化的StoreController
的引用,该实例具有这些属性,因为您将它们放在构造函数中。您可能需要查看How does the "this" keyword work?以获得详细信息。