Угловая ng-модель не работает в нескольких представлениях

Я пытаюсь создать одностраничное приложение с помощью ng-view, но в настоящее время у меня проблема с ng-model. Я следовал этому руководству здесь и всем работает отлично, кроме ng-model. Я добавил форму с одним входным текстом с ng-моделью и кнопкой, которая вызывает функцию в моем контроллере. Когда кнопка отправлена, я загружаю представление, в котором пытаюсь получить свою ng-модель, но безуспешно...

Смотрите ниже мой код:

home.html

    <div>
        <h2>Home Page</h2>
            <form>
                <input type="text" ng-model="actia.name"  placeholder="Saisir un mot"><br>
                <button ng-click="toSend()">OK</button>
            </form>
    </div>

app.js

var MyApp = angular.module('MyApp', ['ngRoute']);

MyApp.config(function($routeProvider, $locationProvider){
    $routeProvider
            .when('/',{
                templateUrl : 'pages/home.html',
                controller : 'MainController'
            }).when('/contact',{
                templateUrl : 'pages/contact.html',
                controller : 'MainController'
            });
//    $locationProvider.html5Mode(true);
});

MyApp.controller('MainController', function($scope, $location){
    $scope.message = "Message du main Control";
    $scope.actia = {
        name : '',
        lastname : 'goerge'
    };
    $scope.toSend = function(){
        var donnees = $scope.actia;
//        $location.url('/contact');
        console.log(donnees);
    };
});

contact.home

    <div>
        <h2>Contact Page</h2>
            <p>Value is : {{actia.name}} {{actia.lastname}}</p>
    </div>

{{actia.lastname}} отображается, но не {{actia.name}}
Есть ли у вас какие-либо предложения по решению этой проблемы? заранее спасибо


person Amiral Yassine    schedule 26.08.2015    source источник


Ответы (1)


Это потому, что вы получаете новый контроллер для каждого маршрута. Они не знают друг друга. Вам может понадобиться фабрика/служба для синхронизации данных между этими двумя представлениями.

person m.brand    schedule 26.08.2015
comment
Спасибо за ваш ответ, я новичок в Angular, не могли бы вы показать мне, как использовать сервис в этом случае, пожалуйста? Большое спасибо - person Amiral Yassine; 26.08.2015
comment
проверьте этот вопрос: stackoverflow.com/questions/21919962/ показано, как использовать фабрику для обмена данными между контроллерами. - person m.brand; 26.08.2015