【问题标题】:Bind to external model in the view绑定到视图中的外部模型
【发布时间】:2015-07-17 18:12:24
【问题描述】:

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

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

我对 Angular 还没有那么丰富的经验,所以我在尝试找出执行以下操作的方法时遇到了一些困难。

在“create-appointments-view.html”(约会模块)中,我希望能够将搜索框绑定到客户控制器,以便搜索客户姓名并选择它。

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

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

我想获得一些帮助、文档、链接等,以帮助我找到答案并了解如何完成此操作的基础知识。

谢谢!

【问题讨论】:

  • 你想在控制器之间共享对象吗?
  • 没错,或者至少这是我的想法

标签: angularjs mongodb meanjs


【解决方案1】:

可能需要使用 Angular 服务,更具体地说是工厂。它们是单例,一旦被调用,就不会像控制器那样改变。

这是一个精简的 plunker 示例: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;
    }

【讨论】:

  • 谢谢!在您回答后,我阅读了有关服务的角度文档,这似乎就是我正在寻找的。将使用它,看看会发生什么
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-06
  • 2013-08-17
相关资源
最近更新 更多