绑定到视图中的外部模型

时间:2015-07-17 18:12:25

标签: angularjs mongodb meanjs

所以我使用Mean.js框架创建应用程序,我已经创建了两个模块,一个客户模块和一个约会模块。约会将有一个客户ID。

Mean.js在模块中创建客户端和服务器文件,在客户端使用Angular。

我对Angular没有经验,所以我在努力寻找下列方法时会遇到一些困难。

在" create-appointmentments-view.html" (约会模块),我希望能够将搜索框绑定到客户控制器,以便我可以搜索客户的名称并选择它。

客户模块按预期工作,我可以创建,列出,编辑和更新新客户,但当然它不需要来自其他模块的任何其他信息。与约会模块相反,我希望能够查看客户列表并选择其中一个。

每个模块都有自己的控制器来管理CRUD操作,路由和视图。

我想获得一些帮助,文档,链接等,以帮助我找到答案,并了解如何做到这一点的基础知识。

谢谢!

1 个答案:

答案 0 :(得分:1)

可能需要使用Angular服务,更具体地说是工厂。他们是单身,所以一旦被召唤,就不会像控制者一样改变。

这是一个精简的例子:http://plnkr.co/edit/DoxvzZZf4OIxaOJ24EED

angular
        .module('app',['ngRoute'])
        .config(config)
        .factory('Service',Service)
        .controller('FirstCtrl',FirstCtrl)
        .controller('SecondCtrl',SecondCtrl);


    function config($routeProvider) {
        $routeProvider
          .when('/', {
            templateUrl: 'one.html',
            controller: 'FirstCtrl as first_ctrl'
          })
          .when('/two', {
            templateUrl: 'two.html',
            controller: 'SecondCtrl as second_ctrl'
          })
          .otherwise({
            redirectTo: '/'
          });
    }


    function Service() {
        var service = {
            name: 'Clark'
        }

        return service;
    }

    function FirstCtrl(Service) {
        var vm = this;

        vm.name = Service.name;
        vm.setName = setName;

        function setName() {
            console.log('new name set');
            Service.name = vm.name;
        }
    }

    function SecondCtrl(Service) {
        var vm = this;
        vm.name = Service.name;
    }