我得到這個角度廠:爲什麼IM沒有得到響應返回從此工廠功能angularJS
var productApp = angular.module('productApp', ['ngRoute', 'LocalStorageModule', 'angularSlideables', 'ui.bootstrap']);
productApp.factory('productFactory', function($http, localStorageService, $q) {
var factory = {};
factory.getProductById = function(prod_id) {
if(prod_id !== '') {
$http({
url: 'rest/message/getProductById/' + prod_id,
method: 'GET'
}).success(function(data, status) {
return data;
}).error(function(data, status){
// do nothing
});
}else {
alert("There was an error while passing the ID. Please refresh the page and try again");
}
}
return factory;
});
注入工廠控制器,並呼籲以「getProductById」功能:
productApp.controller('ModalInstanceCtrl', function ($scope, $modalInstance, productFactory, prodId) {
console.log("this is the prod id " + prodId);
// search product in the database
$scope.prod = productFactory.getProductById(prodId);
console.log($scope.prod);
$scope.ok = function() {
console.log($scope.prodData);
};
$scope.cancel = function() {
$modalInstance.dismiss('cancel');
};
});
現在,不知道它有什麼問題...函數返回的數據,因爲我做了一個console.log(數據),並看到所有的響應,但在控制器,如果我檢查$ scope.prod ,它是未定義的。它不會從函數返回數據。
(以防萬一你們問的「PRODID」在控制器的參數是好的,和檢索,從另一個控制器)
我怎麼能解決這個問題? :(
在此先感謝。
你的工廠函數不返回任何東西,這就是爲什麼你得到'undefined' ...返回請求並使用控制器中的'then'來設置scope屬性。成功之內的「回報」不會做任何事 – charlietfl
@charlietfl你能回答下面的一個小例子,然後我可以打勾你作爲正確的答案,如果這個工程?謝謝 ! :) – user3078876