标题并没有真正解释我在这里要问的问题。那么这是一个例子:
.factory('Story', function($http) {
var storyFactory = {};
Factory.getStory = function() {
return $http.get('/api');
}
})
.controller('StoryController', function(story) {
var vm = this;
Story.allStory()
.sucess(function(mydata) {
})
})
那么allStory()如何将数据返回到mydata?
答案 0 :(得分:1)
您是否在询问javascript当时用逻辑对象替换编写代码的方式?
例如
console.log(new Array({"getWalkDetails":function(){return {"MaxSpeed":15, "DistanceWalked": 123}} },
"walking on sunshine",
"oh oh" ).shift().getWalkDetails().MaxSpeed);
//outputs "15" to the console
这可以改写为
var arr = new Array();
var func = function(){
var details = new Object();
details.MaxSpeed =15;
details.DistanceWalked = 124;
return details;
}
var obj = {"getWalkDetails" : func};
arr.push(obj);
arr.push("walking on sunshine");
arr.push("oh oh");
var firstItem = arr.shift();
//the array function 'shift()' is used to remove the first item in the array and return it to the variable
var walkingDetails = firstItem.getWalkingDetails()//same as func() or obj.getWalkingDetails()
console.log(walkingDetails.MaxSpeed);//15
正如您所看到的,我们将大部分解释的输出存储为要单独使用的变量。
修改强> 如果您正在询问如何通过javascript中的引用传递对象,以允许mydata变量接收对其传递给它的函数所做的任何更改。然后this question可能对您有所帮助: javascript pass object as reference
修改强> 编辑了上面的代码
答案 1 :(得分:0)
我不完全确定你的意思(特别是因为我从未使用过Angular),但我有一种感觉,你对这个小技巧感到困惑:
//+ fn -> [a]
var getParameterNames = (function () {
var STRIP_COMMENTS = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg,
ARGUMENT_NAMES = /([^\s,]+)/g;
return function (fn) {
var fnStr = fn.toString().replace(STRIP_COMMENTS, ''),
names = fnStr.slice(fnStr.indexOf('(')+1, fnStr.indexOf(')')).match(ARGUMENT_NAMES);
return names || [];
};
})();
function add (x, y) {
return x + y;
}
console.log(getParameterNames(add)); // => ['x', 'y']