Javascript 角度:将项目推送到列表';不要更新视图

Javascript 角度:将项目推送到列表';不要更新视图,javascript,angularjs,Javascript,Angularjs,当我将项目推送到数组中时,视图不会刷新列表 表: <tbody id="productRows"> <tr data-ng-repeat="product in products | filter: search"> <td>{{ product.Code}}</td> <td colspan="8">{{ product.Name}}</td> </tr> <

当我将项目推送到数组中时,视图不会刷新列表

表:

<tbody id="productRows">
    <tr data-ng-repeat="product in products | filter: search">
        <td>{{ product.Code}}</td>
        <td colspan="8">{{ product.Name}}</td>
    </tr>
</tbody>
如您所见,我记录了数组中的所有项,其行为与我预期的一样。唯一没有达到我期望的效果的是我的表的内容,它没有显示新的值


我必须做什么才能使新行显示在表中?

我看不到您代码的其余部分,但请确保在控制器中定义了
$scope.products

看这个

我对您提供的代码所做的唯一补充是:

$scope.products = [];

如果没有帮助,请提供更多信息。

谢谢您的回答和评论。问题出在另一个地方。在我的
routeProvider
中,我声明了一个控制器。我的div中还有一个
ng controller
指令,所以我的控制器执行了两次。当我删除
ng controller
指令时,一切都正常工作:)

看起来应该正常工作。请添加一个JSFIDLE或plnkr。这与您的代码一起工作正常吗?您是否正确定义了$scope.products?什么代码正在调用
submitProduct()
?如果此代码运行的是“外部”Angular,则需要在
submitProduct()
方法末尾调用
$scope.$apply()
,以使Angular运行摘要循环,这将导致视图更新。谢谢,这也解决了我的问题,我在routeProvider中声明了一个控制器,而我的身体已经有了ng控制器属性。“你怎么知道这是问题所在?”DanielFlores嗯,我从头到尾都在看我的代码。所以我从ap..模块,app.routes开始,一直到我的视图。当我查看我的视图时,我注意到我已经声明了同一个控制器两次:在我的路线中和在我的视图中。谢谢!这也显示了我的问题!:)我没有使用routeProvider,但我在同一页的不同div中使用相同的控制器。每当我向阵列中推送某个东西时,控制器就会重新加载,所以我不能推送任何东西。谢谢!你的解决方案对我有效。我也遇到了同样的问题,其中没有将项目推送到我的$scope.lists.push({});。我声明了$scope.lists=[];在顶部,它像一个魅力。谢谢
$scope.submitProduct = function () {
    console.log('before: ' + $scope.products.length);

    $scope.products.push({Code: $scope.product.Code, Name: $scope.product.Name});
    console.log('after:' + $scope.products.length);
    console.log($scope.products);

    $scope.showOverlay = false;
};
$scope.products = [];