Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用外部数据更新ng网格_Javascript_Angularjs_Ng Grid - Fatal编程技术网

Javascript 使用外部数据更新ng网格

Javascript 使用外部数据更新ng网格,javascript,angularjs,ng-grid,Javascript,Angularjs,Ng Grid,我有一个与以下代码 HTML 现在,当我单击hi按钮时,我希望能够通过调用apply()并设置myData,将表的内容设置为我想放在那里的任何内容。但是它不起作用。。我做错了什么 理由:基本上,我有一个复杂的逻辑(比内置缓存功能更复杂)来检查本地存储,然后在需要时通过REST调用检索新数据。除此之外,需要合并三个REST调用的结果。因此,对我来说,似乎最简单的方法就是在跳过许多障碍之后检索正确的范围、分配数据并应用() 如果要获得正确的作用域,只需将id移动到控制器元素 <body ng-

我有一个与以下代码

HTML

现在,当我单击hi按钮时,我希望能够通过调用apply()并设置myData,将表的内容设置为我想放在那里的任何内容。但是它不起作用。。我做错了什么


理由:基本上,我有一个复杂的逻辑(比内置缓存功能更复杂)来检查本地存储,然后在需要时通过REST调用检索新数据。除此之外,需要合并三个REST调用的结果。因此,对我来说,似乎最简单的方法就是在跳过许多障碍之后检索正确的范围、分配数据并应用()

如果要获得正确的作用域,只需将id移动到控制器元素

<body ng-controller="MyCtrl" id="myGrid">
只需将您的功能作为控制器范围的一部分。然后用按钮调用函数,就像将数据放入网格一样


您可以轻松地用远程数据源的数据替换此静态数据

我将尝试对此作出响应。有什么具体原因使你不能在控制器内工作吗?这是一种试图拯救你自己的设计模式
var app = angular.module('myApp', ['ngGrid']);
app.controller('MyCtrl', function($scope) {
    $scope.gridOptions = {
        data: 'myData',
        showFilter: true,
        columnDefs: [{ field: "name", width: 120 , displayName : "Name" },
                    { field: "age", width: 120 },
                    { field: "birthday", width: 120 },
                    { field: "salary", width: 120 }]
    };
    $scope.myData = [];
});


function hi()
{
scope = angular.element($("#myGrid")).scope();
console.log( $("#myGrid") , angular.element($("#myGrid")) , scope );
if( scope )
scope.$apply(function(){
        scope.myData = [{ name: "Moroni", age: 50, birthday: "Oct 28, 1970", salary: "60,000" },
                    { name: "Tiancum", age: 43, birthday: "Feb 12, 1985", salary: "70,000" }];
    })
}
<body ng-controller="MyCtrl" id="myGrid">
<button ng-click="hi()" type="button">hi</button>
    $scope.hi = function(){
        $scope.myData = [{ name: "Moroni", age: 50, birthday: "Oct 28, 1970", salary: "60,000" },
                         { name: "Tiancum", age: 43, birthday: "Feb 12, 1985", salary: "70,000" }];
    };