从组件指令添加项目时,ng-repeat不会更新

时间:2017-07-22 10:48:04

标签: angularjs arrays angularjs-ng-repeat

我的代码有问题,但无法找到,我更新了一个数组,但在我的主视图中没有更新

这里是我的代码

app.controller("MainCtrl", function ($scope, $http) {
    $scope.user = [];

    $scope.adduser = function (fuser, luser) {
        var name = { fname: fuser, lname: luser }
       // debugger;
        $scope.user.push(name);

    };
 
<div ng-app="mainApp">
    <div ng-controller="MainCtrl">
        <h3>User Info</h3>
       <userinfo></userinfo>
       <div ng-repeat="name in user">
           {{name.fname}}
       </div>
    </div>
<form name="myForm" ng-controller="MainCtrl">


First Name : <input type="text" ng-model="fname">
<br> Last Name : <input type="text" ng-model="lname">

<button type="button" class="btn btn-primary" ng-click="adduser(fname,lname)">Add</button>

</form>

2 个答案:

答案 0 :(得分:1)

您需要在指令中传递变量

favicon.ico

和指令as,

<userinfo user='user'></userinfo>

答案 1 :(得分:0)

controllerAs语法使您的控制器函数this(上下文)可通过其别名访问,此处为c。当您使用controllerAs语法时,您的绑定值应该绑定到控制器函数上下文(this)。您应该避免在$scope方法中使用控制器中的controllerAs。即使在调用adduser方法时,也可以通过控制器别名c.adduser

来调用它

<强>代码

app.controller("MainCtrl", function ($http) {
    var c= this;
    c.user = [];
    c.adduser = adduser;

    function adduser(fuser, luser) {
        var name = { fname: fuser, lname: luser }
       // debugger;
        c.user.push(name)
    };
})
相关问题