与服务的角度控制器的通信 [英] angular controller communication with a service

查看:159
本文介绍了与服务的角度控制器的通信的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想与相互通信控制器。

  VAR模块= angular.module(应用程序,[]);module.service(MessageAggregator功能(){
    变种服务= {};    service.message = {};    service.setMessage =功能(消息){
        service.message =消息;
    };    退换货服务;
    });    功能firstController($范围,MessageAggregator){
        $ scope.sendRequest =功能(){
            MessageAggregator.setMessage({类型:的FeatureSet});
        };
    }    功能secondController($范围,MessageAggregator){
        $ scope.info = MessageAggregator;
        $ scope.message = MessageAggregator.message;
    }

我想在HTML视图中使用MessageAggregator服务数据。

 < D​​IV NG-应用=应用程序>
    < D​​IV NG控制器=firstController>
        <按钮NG点击=sendRequest将()>请求< /按钮>
    < / DIV>
    <小时/>
    < D​​IV NG控制器=secondController>
         < H3>信息:{{资讯}}< / H3 GT&;
         &所述; H3>消息:{{消息}}&下; / H3>
    < / DIV>
< / DIV>

工作code是这里的jsfiddle

 < H3>消息:{{}信息}< / H3 GT&;不填充和工作
< H3>信息:{{资讯}}< / H3 GT&;工作中


解决方案

您应该让您的控制器模块中

module.controller(firstController功能($范围,MessageAggregator){
    $ scope.sendRequest =功能(){
        MessageAggregator.setMessage({类型:的FeatureSet});
    };
});module.controller(secondController功能($范围,MessageAggregator){
    $ scope.info = MessageAggregator;
    $ scope.message = MessageAggregator.message;
});

I want to communicate controllers with another.

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

module.service("MessageAggregator", function(){
    var service = {};

    service.message = {};

    service.setMessage = function(message){
        service.message = message;
    };

    return service;
    });

    function firstController($scope, MessageAggregator){
        $scope.sendRequest = function(){
            MessageAggregator.setMessage({type: "FeatureSet"});
        };
    }

    function secondController($scope, MessageAggregator){
        $scope.info = MessageAggregator;
        $scope.message = MessageAggregator.message;
    }

I want to use MessageAggregator service data in html view.

<div ng-app="app">
    <div ng-controller="firstController">
        <button ng-click="sendRequest()">Request</button>
    </div>
    <hr/>
    <div ng-controller="secondController">
         <h3>info: {{info}}</h3>
         <h3>message: {{message}}</h3>
    </div>
</div>

Working code is here jsfiddle

<h3>message: {{message}}</h3>  not populated and working
<h3>info: {{info}}</h3> is working

解决方案

You should make your controller in your module

module.controller("firstController", function($scope, MessageAggregator){
    $scope.sendRequest = function(){
        MessageAggregator.setMessage({type: "FeatureSet"});
    };
});

module.controller("secondController", function($scope, MessageAggregator){
    $scope.info = MessageAggregator;
    $scope.message = MessageAggregator.message;
});

这篇关于与服务的角度控制器的通信的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆