2015-10-15 85 views
1

当后端(在我的情况下,Mysql,病人的详细信息)的值变化与其他任何用户(其他控制台),我想更新另一个值页面同时(不刷新页面)。如何显示页面。我的代码如下。Angularjs:需要双向绑定(双极绑定)的帮助

myscript.js

var ajaxApp=angular.module('ajaxApp',[]); 
ajaxApp.controller('ajaxController',function ajaxController($scope,$http){ 
$http.get('core/getdata.php').success(function(data){ 
    $scope.patient=data; 
}); 
}); 

我的PHP页面

<tr ng-animate="'animate'" ng-repeat="p in patient|filter:pnametext|limitTo:10"> 
 
    <td><div class="btn btn-info">{{p.opNo}}</div></td> 
 
       <td><b><a href="getPtDetails.php?pId={{p.pId}}">{{p.pName | uppercase}}</a></b></td> 
 
       <td> 
 
       <div ng-switch on="p.pCatId"> 
 
        <div ng-switch-when="1"> 
 
        ONE 
 
        </div> 
 
        <div ng-switch-when="2"> 
 
        TWO 
 
        </div> 
 
        <div ng-switch-when="3"> 
 
        THREE 
 
        </div> 
 
       
 
       </div> 
 
       </td> 
 
       <td>{{p.pAge}}</td> 
 
       <td>{{p.pHusFather}}</td> 
 
       <td>{{p.phNumber}}</td> 
 
       <td><a href="patientQ.php?pId={{p.pId}}"><button class="btn btn-danger">Add to Queue</button></a></td> 
 
      </tr> 
 

+0

您需要经常运行AJAX调用和更新视图。使用计时器并调用AJAX功能。 –

+0

你可以实现使用普通的可共享服务..因此,数据将通过服务在每个控制器之间共享。**或者**您可以使用事件'$ broadcast'来隐藏其他数据并将其中的数据传递给... ..附加到一旦事件播出,该事件将被呼叫 –

回答

3

建议使用socket.io(网络接口)组人编辑在同一个内容同一个chanel,向他人广播修改,并通知o人们并应用变化。 AJAX是不是真正的时间和成本更 http://socket.io/

socket.connect(xx); 
 
socket.on('change', function(data) { 
 
    alert('change happen!'); 
 
    $scope.data = data; 
 
    $scope.$apply(); 
 
}) 
 
$scope.$watch('data', function() { 
 
    if (change) { 
 
    socket.emit('change', $scope.data); 
 
    } 
 
})