javascript - 为什么元素没有以 Angular 动态添加

标签 javascript jquery node.js angularjs angularjs-directive

我正在尝试使用 ng-repeat 动态添加数据。我不知道为什么它没有添加。我输入在数据中动态添加的“名称”,但它没有显示在用户界面中。这是demo

app.controller("studentcntr", ['$scope', function(scope) {
    scope.studentDetail = [];
    var student = {
        name: ''
    };

    scope.addStudent = function() {
        bootbox.prompt("Enter Name!", function(res){
            if (res == null) {

            } else {
                student.name = res;
                scope.studentDetail.push(student);
            }
        });
    };
}])

最佳答案

这一行

scope.studentDetail.push(student);

在 Angular 之外执行,因此 Angular 不知道 StudentDetail 已经更改。您可以使用scope.$apply()来要求Angular检查更改

scope.$apply(function() {
    scope.studentDetail.push({
        name: res
    });
});

代码的另一个问题是您在 Controller 内声明了一个变量 Student。所以每次你将它推送到scope.studentDetail中时,你实际上是再次推送同一个对象,这将导致ng-repeat错误。我更改了上面的代码以每次推送新对象

关于javascript - 为什么元素没有以 Angular 动态添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25172572/

相关文章:

jQuery 获取属性

javascript - 如何重复函数来放置另一个innerHTML?

mysql - "ssl : true"是使用 ssl 连接到 mysql 服务器的有效选项吗

javascript - 动态确定要从数据库运行哪些 Nightwatch.js 测试

c# - 使用 ClientScriptManager 将 JavaScript 添加到页面

javascript - 使用不同的企业 ID 时,trustpilot 轮播不工作

javascript - 使用 Javascript 或 Jquery 将参数传递给 url

c++ - 如何在 native Node 模块中维护零拷贝?

node.js - 在cassandra中选择compositetype键

javascript - 为什么 javascript 返回另一件事而 php 返回另一件事?