2015-04-07 5 views
2

Что мне нужно, когда я изменяю значение из текстового окна дочернего окна, отражатель должен появиться в родительских окнах в таблице. И вот мой parent.html.Как изменить значения из текстового окна дочернего окна, которое отражается на записи родительского окна в таблице?

----- index.html --------

<!DOCTYPE html> 
<html> 

    <head> 
    <script data-require="[email protected]" data-semver="1.4.0-beta.6" src="https://code.angularjs.org/1.4.0-beta.6/angular.js"></script> 
    <link href="style.css" rel="stylesheet"/> 
    <script src="script.js"></script> 
    </head> 

    <body> 
    <div ng-app="myApp"> 
<div ng-controller="PeopleCtrl"> 
<form method=post action='' name=f1> 
<table border="1" > 
    <tr> 
     <th>Id</th> 
     <th>Name</th> 
     <th>Age</th> 
     <th> Edit here</th> 
    </tr> 
    <tr ng-repeat="person in people"> 
     <td><span id="d" name='p_name'>{{person.id}}</span></td> 
     <td><span id="c" name='q_name'>{{person.name}}</span></td> 
     <td><span id="e" name='r_name'>{{person.age}}</span></td> 
     <td><a href="#" ng-click="foo()">Edit</a></td> 
    </tr> 
</table> 
</form> 
</div> 
</div> 
<script> 
var myApp=angular.module('myApp', []); 

myApp.controller('PeopleCtrl', function($scope,$window) { 

    $scope.people = ([ 
    { 
    id: 1, 
    name: "Peter", 
    age: 21}, 
{ 
    id: 2, 
    name: "David", 
    age: 20}, 
{ 
    id: 3, 
    name: "Anil", 
    age: 22} 
    ]) 
    $scope.foo = function() { 

    $window.open('index1.html'); 
}; 
}); 
</script> 

А вот мой ребенок окно:

------ index1.html --- ----

<!DOCTYPE html> 
<head> 
<script data-require="[email protected]" data-semver="1.4.0-beta.6" src="https://code.angularjs.org/1.4.0-beta.6/angular.js"></script> 
<script> 

function post_value(){ 
opener.document.f1.p_name.value = document.frm.c_name.value; 
opener.document.f1.q_name.value = document.frm.d_name.value; 
opener.document.f1.r_name.value = document.frm.e_name.value; 

self.close(); 
} 

</script> 

<title>(Type a title for your page here)</title> 
</head> 


<body ng-app="mainApp" > 

<div ng-controller='childController'> 

    <form name="frm" method=post action=''> 
<table border="0"> 
    <tr><td>Enter id:</td><td><input id="d" type="text" name="c_name" ></td></tr> 
    <tr><td>Enter name:</td><td><input id="c" type="text" name="d_name" ></td></tr> 
    <tr><td>Enter age:</td><td><input id="e" type="text" name="e_name" ></td></tr> 
    <tr><td><button onclick="post_value();">Save</button></td></tr> 
</table> 

</form> 
</div> 
</body> 
</html> 

А вот мой plunker: http://plnkr.co/edit/qF2zvp0VYY9wMvWzt3XK?p=preview

+0

это не может быть сделано с различными окнами с помощью своей реализации, помните, угловой для одного приложения страницы. Работа вокруг использует websocket, чтобы два окна прослушивали события – ABOS

ответ

2

Вы не должны открывать детали в другом окне. Затем вы не можете сохранять данные в своем приложении, потому что нет способа связи между двумя окнами.

Я не думаю, что вам нужно сделать это настолько сложным, что вы можете сделать приложение как SPA (одностраничное приложение). Для этого вам нужно использовать ng-route, который будет динамически загружать страницы на основе изменений URL.

Использование ниже HTML

<div ng-view></div> 

Затем вам нужно написать конфигурацию для вас приложение, когда для загрузки, какой шаблон, с которой контроллер

Config

вар MYAPP = angular.module (» myApp ', [' ngRoute ']);

myApp.config(['$routeProvider', 
    function($routeProvider) { 
    $routeProvider 
     .when('/people', { 
     templateUrl: 'people.html', 
     controller: 'PeopleCtrl' 
     }) 
     .when('/people/:id', { 
     templateUrl: 'details.html', 
     controller: 'detailsCtrl' 
     }) 
     .otherwise({ 
     redirectTo: '/people' 
     }); 
    } 
]); 

Working Plunkr здесь

+0

, но если я нажму, чтобы сохранить, я получаю ошибку messege –

+0

@anilchean, эта часть находится на рассмотрении .. вы должны это сделать .. щелкнув эту кнопку, детали будут сохранены и пользователь переадресует на страницу списка, взгляните на plunkr, который я обновляю. –

+0

благодарю вас за помощь в том, что помогло мне с этим ......... –

Смежные вопросы