我在這裏追逐我的尾巴。我所要做的就是從$ scope.getPlacesTextRaw函數返回一個字符串。角延期環
$scope.getPlacesTextRaw = function(selectedPlace){
mentionsFactory.getPlaceMetaData(selectedPlace).then(function(metadata) {
console.log("here is our metadata", metadata);
return metadata.description.replace(/ /g,"_");
});
};
的另一種嘗試:
$scope.getPlacesTextRaw = function(selectedPlace){
var deferred = $q.defer();
mentionsFactory.getPlaceMetaData(selectedPlace).then(function(metadata) {
console.log("here is our metadata", metadata);
deferred.resolve('@' + metadata.description.replace(/ /g,"_"));
});
deferred.promise.then(function(string){
return string;
});
};
我從指令中調用getPlacesTextRaw:
<mentio-menu
mentio-for="'hashtag'"
mentio-trigger-char="'@'"
mentio-items="places"
mentio-template-url="/places-mentions.tpl"
mentio-search="searchPlaces(term)"
mentio-select="getPlacesTextRaw(item);">
</mentio-menu>
如何調用函數getPlacesTextRaw?而不是像{{getPlacesTextRaw()}}這樣的html? – sylwester 2014-09-12 20:04:27
@ That1guyoverthr:您正在使用一些異步編程(無論是使用promise還是回調或其他),所以您無法返回字符串。您可以返回一個解析爲字符串的承諾。根據你的用例,你也可以返回一個包含一個空字符串屬性的對象,這個對象在準備就緒時被分配實際的字符串)。 – gkalpak 2014-09-12 20:08:57
@sss我更新了我的問題以回答你的問題。 – That1guyoverthr 2014-09-12 20:18:03