javascript - angular service 问题
伊谢尔伦
伊谢尔伦 2017-04-11 10:58:20
[JavaScript讨论组]

在service中声明了一个对象并且在内部给这个对象赋值,但是到controller中调用的时候,对象是空的。

//service.js
var test = {};
test = data;
//controller
console.log(service.test);

输出为空,求解?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(2)
PHP中文网

取决于你的service怎么写的,正确姿势:

app.service('TestService', function(){

   this.sayHi = function(){
       alert('hello world');
   };
});

你在调用的地方,就可以这么使用:

app.controller('TestController', function($scope, TestService){
    
    TestService.sayHi();
    
});
阿神

你可以看看下面这个例子,传送门。

如果上面的地址不能够访问的话,可以看一看下面的代码;是上面的主要部分。
JavaScript:

(function() {
  angular.module('MyApp', [])
  .service('MyService', MyService)
  .controller('MainCtrl', MainCtrl)
  
  MyService.$inject = [];
  MainCtrl.$inject = ['MyService'];
  
  function MyService() {
    var service = {
      sayHello: sayHello
    };
    return service;
    
    function sayHello() {
      console.log('Hi, dreamapple!');
    }
  }
  
  function MainCtrl(MyService) {
    var vm = this;
    vm.name = 'dreamapple';
    
    vm.say = say;
    
    function say() {
      console.log(MyService); // 这里就是上面你定义的服务
      MyService.sayHello();
    }
    
  }
})();

HTML

<body ng-app="MyApp">
  <p ng-controller="MainCtrl as vm">
    <button ng-click="vm.say()">click me</button>
  </p>
</body>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号