Как запустить xhr запрос с адресом, указанным в шаблоне
Я пытаюсь запустить запрос XHR на URL, который контроллер получает из шаблона.
Я получаю URL, как это
Угловой код:
ManageControllers.controller('ManageCtrl', ['$scope', '$http',
function ManageCtrl($scope, $http) {
$scope.urls = {
edit : '',
get : ''
};
$http.post($scope.urls.get).success(function(data) {
$scope.recipe = data;
});
}
]);
HTML-шаблон:
<div ng-app="ManageApp">
<div ng-controller="ManageCtrl">
<input
ng-model="urls.save"
ng-init="
urls.save = '/save';
"
/>
<input
ng-model="urls.get"
ng-init="
urls.get = '/get';
"
/>
</div>
</div>
Пока что Angular читает значение из trmplate. Но похоже, что $ http запускается до ng-init. Так что я не знаю, лучше ли запускать $ http из какой-либо функции с тайм-аутом или есть какой-то правильный, угловой способ сделать это.
1 ответ
Вы можете немного изменить свой код без использования setTimeout:
<input
ng-model="urls.get"
ng-init="initGet('/get')"
/>
ManageControllers.controller('ManageCtrl', ['$scope', '$http',
function ManageCtrl($scope, $http) {
$scope.urls = {
edit : '',
get : ''
};
$scope.initGet = function(url) {
$scope.urls.get = url;
$http.post($scope.urls.get).success(function(data) {
$scope.recipe = data;
});
};
}
]);