我无法转换某些Angular代码。目前,它正在使用Angular的$ http服务从另一个文件中获取数据并将其显示在页面上。我希望它仍然可以使用vm
代替$scope
。这是我徒劳地尝试这样做的一个例子:
HTML
<h1>{{vm.welcome}}</h1>
的Javascript
var app = angular.module('myApp', []);
app.controller('myCtrl', function() {
$http.get("welcome.htm")
.then(function(response) {
var vm = this;
vm.welcome = response.data;
});
});
另外,我最初从w3schools&#39; Angular tutorial
答案 0 :(得分:3)
在承诺之外和控制器内部添加var vm = this;
。
var app = angular.module('myApp', []);
app.controller('myCtrl', function($http) {
var vm = this;
$http.get("welcome.htm")
.then(function(response) {
vm.welcome = response.data;
});
});
在html中使用控制器作为控制器的参考
<div ng-controller="myCtrl as vm">
<h1>{{vm.welcome}}</h1>
</div>
请参阅this以获取有关this
如何在控制器中工作的更多详细信息