angular の背後にあるアイデアを把握しようとしていますが、スコープ外 (アプリ?) からデータにアクセスするという最初の障害に遭遇しました。
これは私がやろうとしていることの非常に簡単な例です:
HTML:
<div class=logo>
<a href='/refresh'>Refresh</a>
</div>
<div ng-app ng-controller="threadslist">
<div class='thread_list_header'>
<table class='thread_list_table'>
<tr class='table_header'>
<!--1--><td class='table_c1'></td>
<!--2--><td class='table_c2'>{{name}}</td>
<!--3--><td class='table_c3'>Cliq</td>
<!--4--><td class='table_c4'>Last Poster</td>
<!--5--><td class='table_c5'><a class="clickme">Refresh</a></td>
</tr></table>
</div>
<table class='thread_list_table' >
<tr class="thread_list_row" ng-repeat="user in users">
<!--1--><td class='table_options table_c1'></td>
<!--2--><td class='table_subject table_c2' title="">{{user.subject}}</td>
<!--3--><td class='table_cliq table_c3'></td>
<!--4--><td class='table_last table_c4'><span class="thread_username"><a href=#>{{user.username}}</a></span></td>
<!--5--><td class='table_reply table_c5'><abbr class="thread_timestamp timeago" title=""></abbr></td>
</tr>
</table>
</div>
JS:
function threadslist($scope, $http) {
$scope.name = 'Ricky';
// Initialising the variable.
$scope.users = [];
$http({
url: '/cliqforum/ajax/ang_thread',
method: "POST",
}).success(function (data) {
console.log(data);
$scope.users = data;
});
// Getting the list of users through ajax call.
$('.table_header').on('click', '.clickme', function(){
$http.get('/cliqforum/ajax/ang_thread').success(function(data){
$scope.users = data;
});
});
}
これは私が理解できない部分です。私のロゴは、現在の「ユーザー」データにあるフィルターをクリアすることになっています。ただし、それは範囲外にあります(範囲をページ全体に拡張するべきではないと思いますか?)
私は何かを読んだことscope.$spply
がありますが、私が何をすべきかを完全に理解することはできません:
$('.logo').on('click', 'a', function() {
scope.$apply(function () {
$scope.users = data;
});
});
このようにする必要はまったくありません...正しいことをしたいだけです!
ありがとう!