Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何调用服务方法从ng的变化的select在angularjs?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我是新的角j。我试调用工厂服务方法’getscoreData’从ng的变化,但不能够得到它完成。请帮忙。

HTML代码

<SELEct ng-model="score" ng-change="getscoreData(score)" ng-options="c.name for c in     scores"></SELEct>

Angularjs代码

var app = angular.module('audiapp',[]);

app.controller('audiLayoutCtrl',@R_772_1013@,scoreDataservicE) {
    scoreDataservice.getscoreData($scope.score,function (data) {
        $scope.scoreData = data;
    });
});

app.factory('scoreDataservice',function ($http) {
    return {
        getscoreData: function (score,callBACk) {
            var params = {
                questionCode: score.code
            }

            return $http({
                url: 'Home/GetAvgData',method: 'GET',params: params
            }).success(callBACk);
        }
    };
});

上面是服务工厂方法并从控制器实例化。我尝试从ng的变化的选择实例化,但它既不给出错误也不得到调用

您的代码至少有两个问题:

> ng-change =“getscoreData(score)

Angular没有看到getscoreData方法引用定义的服务
> getscoreData:function(score,callBACk)

我们不需要使用回调,因为GET返回promise。然后改用。

这里是一个工作示例(我使用随机地址仅用于模拟):

HTML

<SELEct ng-model="score"
        ng-change="getscoreData(score)" 
        ng-options="score as score.name for score in  scores"></SELEct>
    <pre>{{scoreData|json}}</pre>

JS

var fessmodule = angular.module('mymodule',['ngresource']);

fessmodule.controller('fessCntrl',function($scope,scoreDataservicE) {

    $scope.scores = [{
        name: 'Bukit Batok Street 1',URL: 'http://maps.googleapis.com/maps/api/geocode/json?address=Singapore,SG,Singapore,153 Bukit Batok Street 1&sensor=true'
    },{
        name: 'London 8',London 8&sensor=true'
    }];

    $scope.getscoreData = function(score) {
        scoreDataservice.getscoreData(score).then(function(result) {
            $scope.scoreData = result;
        },function(result) {
            alert("Error: No data returned");
        });
    };

});

fessmodule.$inject = ['$scope','scoreDataservice'];

fessmodule.factory('scoreDataservice',['$http','$q',function($http) {

    var factory = {
        getscoreData: function(score) {
            console.log(score);
            var data = $http({
                method: 'GET',url: score.URL
            });


            return data;
        }
    }
    return factory;
}]);

演示Fiddle

大佬总结

以上是大佬教程为你收集整理的如何调用服务方法从ng的变化的select在angularjs?全部内容,希望文章能够帮你解决如何调用服务方法从ng的变化的select在angularjs?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。