#javascript #json #angularjs
#javascript #json #angularjs
Вопрос:
У меня есть Angular ng-table, где я загружаю данные Json в переменную $data и отображаю в таблице.
function ngTable(){
var app = angular.module('main', ['ngTable']).
controller('DemoCtrl', function($scope, ngTableParams) {
var data = [{name: "Moroni", age: 50},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34},
{name: "Tiancum", age: 43},
{name: "Jacob", age: 27},
{name: "Nephi", age: 29},
{name: "Enos", age: 34}];
$scope.tableParams = new ngTableParams({
page: 1, // show first page
count: 10 // count per page
}, {
total: data.length, // length of data
getData: function($defer, params) {
$defer.resolve(data.slice((params.page() - 1) * params.count(), params.page() * params.count()));
}
});
});
}
Кроме того, у меня есть функция Java Script, возвращающая некоторые другие данные Json — функция вызывается при нажатии кнопки.
function ReturnJson() {
var json = [];
$('body').on('click','button#test', function(){
var id = $(this).attr("value").val();
json = id;
});
return json;
}
Как мне заменить содержимое данных var на ReturnJson() каждый раз при нажатии кнопки?
Ответ №1:
Простое назначение будет работать, но не забудьте перезагрузить сетку:
$scope.loadData = function () {
$scope.data = $scope.ReturnJson();
$scope.tableParams.reload();
}
$scope.ReturnJson = function () {
var json = [{name: "bb", age: 200},{name: "aaa", age: 100}];
return json;
}
Вот рабочая демонстрация: http://plnkr.co/edit/Jw41uCmHGAfjkuoLIQor?p=preview
Комментарии:
1. Я не уверен, как воспользоваться вашим решением, потому что моя функция java script вызывается при событии Jquery onclick, и внутри есть некоторый ajax-запрос… Но определенно 1 за конструктивный ответ.
2. Я предлагаю вам использовать angular ng-click для вызова функции. В Angular есть $http для ajax. На самом деле проще не смешивать angular и jquery.