javascript – 我如何将范围从控制器传递到angularjs中的服务?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 我如何将范围从控制器传递到angularjs中的服务?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1780字,纯文字阅读大概需要3分钟。
内容图文
我有以下控制器:
'use strict';
/* Controllers */
angular.module('stocks.controllers', []).
controller('MyCtrl1', ['$scope', '$http', 'stockData', function MyCtrl1 ($scope, $http, stockData) {
$scope.submit = function() {
$scope.info = stockData.query();
console.dir($scope.info);
}
}]);
我想将一个名为ng-model =“symbol_wanted”的绑定ng模型传递给以下服务…
'use strict';
/* Services */
angular.module('stocks.services', ['ngResource']).factory('stockData', ['$resource',
function($resource){
return $resource('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json', {}, {
query: {method:'GET', isArray:false}
});
}]);
如何连接控制器的范围以传入服务?谢谢!
解决方法:
how do i pass scope from controller to service in angularjs?
你不能将$scope注入服务,没有Singleton $scope这样的东西.
i want to pass a bound ng-model that sits in my view called ng-model=”symbol_wanted” to the following service…
您可以通过以下方式调用服务并传递参数:
.factory('stockData', ['$resource', '$q', function ($resource, $q) {
var factory = {
query: function (value) {
// here you can play with 'value'
var data = $resource('http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20(%22YHOO%22)%0A%09%09&env=http%3A%2F%2Fdatatables.org%2Falltables.env&format=json', {}, {
query: {
method: 'GET',
isArray: false
}
});
var deferred = $q.defer();
deferred.resolve(data);
return deferred.promise;
}
}
return factory;
}]);
所以我们称之为服务,并得到这样的承诺:
stockData.query(value) // <-- pass value
.then(function (result) {
$scope.data = result;
}, function (result) {
alert("Error: No data returned");
});
顺便说一下,我建议你使用$http.get:
演示Fiddle
内容总结
以上是互联网集市为您收集整理的javascript – 我如何将范围从控制器传递到angularjs中的服务?全部内容,希望文章能够帮你解决javascript – 我如何将范围从控制器传递到angularjs中的服务?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。