我需要在控制器中设置工厂变量。此变量用于在我的工厂中返回保存功能的URL。我实际上将这个url构建为几个部分,但这是一个简化版本。
UpdateText
我的控制器的功能如下所示:
myApp.factory('SaveDate', ['$resource',
function saveDateFactory($resource, $http) {
var myData = '';
return $resource(myData, {}, {
query: { method: "POST", params: {}, isArray: false },
});
}]);
我尝试过使用对象而不是原始对象,但它也没有用。我已经测试过,我的SaveDate.myData的值正在准确设置。如果我在工厂中声明变量的地方硬编码值,它将完美保存。我只是无法将变量从我的控制器成功传递到我的工厂。我尝试了很多种方法,包括使用$ watch。感谢您的帮助!
当我添加这样的函数时:
vm.myFunction1 = function ($resource) {
vm.myDate = '/test/MyProduct/SetSalesDate/988093099/108/2016/05/21';
SaveDate.myData = vm.myDate;
//this should save the date for milestones
SaveDate.query();
vm.cleanUp();
};
添加此函数会引发以下错误:未知提供程序:myDataProvider< - myData< - UserListController
答案 0 :(得分:4)
您需要在工厂中创建一个功能,因为 Clint 在评论中说明了这一点。
myApp.factory('SaveDate', ['$resource',
function saveDateFactory($resource, $http) {
var myData = '';
function setMyData(data) {
myData = data;
}
return {
setMyData: setMyData,
resource: $resource(myData, {}, {
query: { method: "POST", params: {}, isArray: false },
})
};
}]);
在您的控制器中:
SaveDate.setMyData(vm.myDate);