我不熟悉JavaScript承諾功能。Javascript承諾在角度控制器
目前,我有我的角度控制這個代碼
$http.get('pages/about.html').then(function(response) {
var raw_html = response.data;
$scope.aboutHTML = raw_html.replace(/</g,"<");
});
我想重新寫代碼,所以我可以做這樣的事情
$scope.indexHTML = getHTML('pages/index.html');
$scope.aboutHTML = getHTML('pages/about.html');
...
與功能類似這樣的
function getHTML(url){
$http.get(url).then(function(response) {
var raw_html = response.data;
return = raw_html.replace(/</g,"<");
});
}
如何正確地爲上面的函數編寫代碼?
[更新#1]
function getHTML(url){
// return the promise
return $http.get(url).then(function(response) {
var raw_html = response.data.replace(/</g,"<");
return raw_html;
});
}
getHTML('pages/index.html').then(function(raw_html){
$scope.indexHTML = raw_html;
});
我想要寫此功能,以減少手工作業,用這種方法我還需要寫下$範圍治標不治本。 {page}爲每個頁面,所以任何人都知道更好的方式?
[更新#2]
解決方案通過@joeytwiddle
function getHTML(url){
// return the promise
return $http.get(url).then(function(response) {
var raw_html = response.data.replace(/</g,"<");
return raw_html;
});
}
getHTML('pages/index.html').then(function(raw_html){
$scope.indexHTML = raw_html;
});
如果你正在使用* angular ui router *,那麼使用'resolve'就有一個* clean *的方法來達到這個目的。如果您使用的是ui路由器,請查看:http://bguiz.github.io/js-standards/angularjs/resolving-promises-for-a-controller/ –