【发布时间】:2014-07-21 12:50:05
【问题描述】:
目前正在学习 Javascript 和 Angular JS。我想看看我是否可以不使用 .factory,只需声明它作为变量返回的内容,然后引用它。
为什么我必须使用工厂而不是仅仅声明它作为函数返回的内容?有没有办法绕过它。
JAVASCRIPT 代码 1(我的代码):http://jsfiddle.net/chrisguzman/s4dBE/4/
myapp.controller("SampleController",
function SampleController($scope,$firebase){
var ref = new Firebase("https://helloworldtest.firebaseio.com/text");
var service = $firebase(ref);
service.$bind($scope, "text");
})
JAVASCRIPT 代码 2(原始代码):http://jsfiddle.net/chrisguzman/s4dBE/3/
angular.module("sampleApp", ["firebase"])
.factory("sampleService", ["$firebase", function($firebase) {
var ref = new Firebase("https://helloworldtest.firebaseio.com/text");
return $firebase(ref);
}])
.controller("SampleController", ["$scope", "sampleService",
function($scope, service) {
service.$bind($scope, "text");
}
]);
额外问题:有没有其他方法可以以不同的方式编写第二个代码脚本。我问的原因是因为它有助于进一步理解它。特别是,我希望看到在不使用工厂的情况下完成相同的任务,如果看到一个函数作为控制器的第二个参数(因为这是已经公开的),那就太棒了。
【问题讨论】:
-
大多数人都有相反的问题...如何从控制器中获取数据以在其他地方使用。您的应用显然不是很复杂,否则您会喜欢将其留在工厂中
标签: javascript angularjs firebase factory angularfire