2013-05-23 2 views
1

Я хочу что-то похожее на учебное пособие на сайте angularJS, но как сделать данные отображаемыми на странице только после нажатия кнопки?Как загрузить данные json только после нажатия кнопки в angularJS

+0

Есть ряд способов создания такого поведения, так что вы можете быть немного м руда специфическая? – Alan

ответ

3

UPDATE

Я вижу, что вы обновили свой вопрос и хотите, чтобы данные JSON загружены по щелчку:

Plunker: http://plnkr.co/edit/nWoSrGxU1yfO6mUhiyvx?p=preview

HTML остается прежним:

<button ng-click="clickButton()">Click!</button> 
    <div ng-bind="message"></div> 

JSON: test.json файл содержит:

{"msg": "I AM A TEST MESSAGE" } 

Угловое: это самый основной способ сделать это. Вы можете использовать $ HTTP и назвать его внутри clickButton() функции:

var app = angular.module('myTestApp', []); 

app.controller('myController', ['$scope', '$http', function($scope, $http) { 

    $scope.clickButton = function() { 
    $http.get('test.json').success(function(data) { 
     $scope.message = data.msg; 
     }); 
    } 

}]); 

Надеется, что это помогает.


Вам необходимо предоставить нам дополнительную информацию + код, чтобы мы знали, о чем вы говорите. Но следующее, что я думаю, что вы после:

HTML:

<div ng-app="myTestApp" ng-controller="myController"> 
    <button ng-click="clickButton()">Click!</button> 
    <div ng-bind="testMessage"></div> 
</div> 

Угловая:

angular.module('myTestApp', []) 
    .controller('myController', function($scope) { 
     $scope.clickButton = function() { 
      $scope.testMessage = "I AM A TEST MESSAGE"; 
     }; 
    }) 

скрипку: http://jsfiddle.net/crjLj/

+0

+1 как вы использовали ng-bind вместо {{}} :) – basarat

+0

@BASarat Почему вы предпочитаете ngBind? – Langdon

+0

Потому что он удаляет мерцание, которое вы видите при загрузке углов. Вместо ' {{prop}}' первоначально отображаемый как '{{prop}}' перед угловыми ударами в вас можно сделать ' независимо от ', который отображает как 'whatever' до углового пинает. – basarat

Смежные вопросы