Я имею переменную в моем контроллере и хотел бы присвоить значение позже, когда вы нажмете на кнопку. т.е.
var app = angular.module('myApp', ['ngRoute']);
....
var userArray = [
{name: "John", age: 25}, {name: "Jim", age: 30}
];
app.controller('Page2Controller', function($scope) {
$scope.message = 'Look! I am from page 2.';
$scope.newArray = [];
$scope.addUsers = function(){
scope.newArray = userArray;
console.log($scope.newArray);
}
}
app.config(function($routeProvider) {
$routeProvider
.when('/page2', {
templateUrl : 'pages/page2.html',
controller : 'Page2Controller'
...
page2.html
<div>
<p>{{ message }}</p>
<ul>
<li ng-repeat="user in Page2Controller.newArray">{{user.name}}</li>
</ul>
</div>
index.html
<body ng-controller="MainController">
<div id="sideMenu">
<h2>Campaign</h2>
<ul>
<li><a href="#">Home</a></li>
<li><a href="#page2">Page 2</a></li>
<li><a href="#page3">Page 3</a></li>
<li><a href="#page4">Page 4</a></li>
</ul>
</div>
<div ng-view></div>
</body>
Я не понимаю, почему $ scope.user отображается в консоли, но на странице html "ng-repeat" не отображает пользователей. Может быть, ng-repeat не может отображать данные, которые были добавлены динамически?
Кто-нибудь может мне помочь? Понятно, что.
Я никогда не называл эту функцию.
var app = angular.module('myApp', []);
var userArray = [{name: "John", age: 25}, {name: "Jim", age: 30}];
app.controller('Page2Controller', function($scope) {
$scope.message = 'Look! I am from page 2.';
// $scope.newArray = [];
$scope.addUsers = function(){
$scope.newArray = userArray;
console.log($scope.newArray);
}
$scope.addUsers();
});
и html
<div ng-controller="Page2Controller">
<p>{{ message }}</p>
<ul>
<li ng-repeat="user in newArray">{{user.name}}</li>
</ul>
</div>
Я статически использовал ваш контроллер, поскольку я не реализовал ngRoute.
Попробуйте переключиться на:
<li ng-repeat="user in scope.newArray">{{user.name}}</li>
Я не думаю, что "Page2Controller" известен в контексте шаблона.
Прежде всего, вам нужен дериватив ng-click, где вы должны нажать, например,
<button type="button" ng-click="asigningValue()"></button>
Затем в вашем контроллере вы должны назначить то, что хотите, например, в контроллере. После этого вам необходимо связать, вы назначаете значение в директиве, например
app.controller('Page2Controller', function($scope) {
$scope.asigningValue=function(){
$scope.message = 'Look! I am from page 2.';
}
}
Затем покажите, используя директиву, используя привязку данных, как
<p ng-bind-html="message"></p>
Надеюсь, это будет полезно!
Спасибо!
scope.newArray = userArray;
и я думаю, что было бы лучше добавить$
sign$scope.newArray = userArray;