2016-05-15 53 views
0

更新后的问题。我在db中推入数据,然后在数组中进行推送,以便使用角度2方式绑定立即显示。然而我的数据越来越多,可以在控制台中看到。但它不在UI中显示。表单数据被推入阵列但未在UI中显示在angularjs中

控制器

contacts.getall().then(function(response){ 
    vm.people = response.data; 
    }); 


    vm.toggleSidenav = function(){ 
     $mdSidenav('left').open(); 
    }; 


    vm.saveit = function(info){ 
     vm.people.push(vm.xyz); 
     contacts.add(vm.xyz); 
     console.log(vm.people); 

我的目录

<md-list> 
    <md-list-item ng-repeat="person in vm.people | filter:vm.searchText |  orderBy:'name'" ng-click="showDialog($event, person)"> 
    <img alt="{{ person.name }}" ng-src="https://lh3.googleusercontent.com/-nR0PNFb3p4k/AAAAAAAAAAI/AAAAAAAAAAA/NVt2CqCrCis/photo.jpg" class="md-avatar" /> 
    <p>{{ person.name }}</p> 
    <p class="phn">{{ person.phone }}</p> 

<md-icon ng-click="vm.showConfirm($event, person)"aria-label="Open Chat" class="md-secondary md-hue-3" ng-class="">delete</md-icon> 
</md-list-item> 

    </md-list> 

对于控制台

vm.people.push(vm.xyz); 
    contacts.add(vm.xyz); 
    console.log(vm.people); 
+0

是否有错误? – Sajeetharan

+0

控制台没有错误。 – scripter

+0

你可以为这个问题创建一个蹲点吗? – Sajeetharan

回答

0

-------------- ---------------- --------------------------- 固定更新 ------------------- ------------------------------------

Al-right所以有一个非常简单的规则当你想从一个控制器传递一个值到另一个控制器时,最好的办法就是使用一个工厂,但因为在这种情况下你不使用第二个控制器,所以我们不会使用工厂。您将var vm.people = [];初始化为数组。

,但低于在这里,你正在推动一个ARRAY

vm.people.push({ 
    name: vm.info.name, 
    phone: vm.info.phone, 
    email: vm.info.email 
}); 

在这种情况下是错误的这就是为什么范围没有得到更新内的OBJECT

,你应该做的事情是创造JSON对象,比更新$scope.showData

vm.people = { "name": vm.info.name, "phone": vm.info.phone, "email": vm.info.email}; 

这导致更新当前的范围,并在同一时间保存数据。仓库中的存储工厂仅用于测试目的,如果您想要将其移除。但如果你需要它,你就会知道如何在工厂传递和存储数据,而不是检索它。

看看你的更新修复Plunker

动画GIF:

Updating the scope in real time

--------------------- -------------------------------------- Old Reply -------- -------------------------------------------------- 嘿,我已经用你自己的代码编写了一个工作的plunker,vm.people数组,你在顶部定义了数组,然后在之内推入数据fucniton工作是非常好的,如预期的那样,vm.people有三个3属性的对象,看起来是什么问题?

[Object] 
0 
: 

email: "[email protected]" 
name: "waqas" 
phone: "4245345343" 

工作plunker Form Data is not getting pushed in array in angularjs

+0

嗨waqas,vm.saveit()正在工作。我首先将数据注入数据库,然后将数据注入到角度数组中,以便我可以立即显示数据。但它不起作用。这里是控制器的github链接 - https://github.com/sourabh-garg/contactaap.1/blob/master/app/assets/javascripts/script/controllers.js如果你想看看我正在采取的只是在https://flap-contact.herokuapp.com/ – scripter

+0

创建一个新记录让我看看 – Wcan

+0

所以你想说的是,记录被保存在数据库中,但它不会出现在记录列表中在右侧,除非你刷新页面? – Wcan