Edit: Plunker работает, фактический код не является: http://plnkr.co/edit/5oVWGCVeuTwTARhZDVMl?p=preview
Сервис содержит типичный геттер \ сеттер материал, кроме того, что она функционирует нормально, так Я не опубликовал его код, чтобы избежать TLDR.
Версия TLDR: попытка ng-init присвоить значение, полученное с помощью AJAX, в ngModel текстовой области, запрос разрешается с правильным значением, но текстовое поле остается пустым.
родительская функция контроллера (переговоры к службе):
$scope.model.getRandomStatus = function(){
var deffered = $q.defer();
var cid = authService.getCompanyId();
var suggestions = companyService.getStatusSuggestions(cid);
if(suggestions && suggestions.length > 0){
deffered.resolve(suggestions[Math.floor(Math.random(suggestions.length) + 1)].message);
return deffered.promise;//we already have a status text, great!
}
//no status, we'll have to load the status choices from the API
companyService.loadStatusSuggestions(cid).then(function(data){
companyService.setStatusSuggestions(cid, data.data);
var result = data.data[Math.floor(Math.random(data.data.length) + 1)];
deffered.resolve(result.message);
},
function(data){
_root.inProgress = false;
deffered.resolve('');
//failed to fetch suggestions, will try again the next time the compnay data is reuqired
});
return deffered.promise;
}
ребенка контроллер:
.controller('shareCtrl', function($scope){
$scope.layout.toggleStatusSuggestion = function(){
$scope.model.getRandomStatus().then(function(data){
console.log(data);//logs out the correct text
//$scope.model.formData.shareStatus = data;//also tried this, no luck
return data.message;
});
$scope.model.formData.shareStatus = $scope.layout.toggleStatusSuggestion();//Newly edited
}
});
HTML:
<div class="shareContainer" data-ng-controller="shareCtrl">
<textarea class="textAreaExtend" name="shareStatus" data-ng-model="model.formData.shareStatus" data-ng-init="model.formData.shareStatus = layout.toggleStatusSuggestion()" cols="4"></textarea>
</div>
может просто установить значение в 'then()' в контроллере вместо использования 'ng-init'. Ничего не возвращается из метода 'toggleStatusSuggestion' – charlietfl
Ну, я также пробовал указанную выше строку в контроллере (помечен как« // new edit »). Пока не повезло. Спасибо за быстрый ответ! –
Теперь я работаю над плунгом, чтобы поэкспериментировать с –