2017-02-24 68 views
0

我無法轉換一些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; 
    }); 
}); 

而且,我本來得到這個代碼w3School的Angular tutorial

+0

您能不能告訴你哪裏綁定你的控制器(NG-'控制器')在你的HTML? –

回答

2

添加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工作

+0

這似乎不起作用...如果您轉到我提供的鏈接,它是否適合您? –

+0

你是否注入'$ http'到你的控制器'app.controller('myCtrl',函數($ http)' –

+0

哦,它可以工作,當我這樣做的時候,謝謝! –

相關問題