我可以实例化一个变量但稍后将值分配给值吗?
Can I instantiate a variable but assign a value to value later?
我的控制器中有一个变量,想稍后在单击按钮时分配一个值。即
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无法显示动态添加的数据?
有人可以帮助我吗?对此表示赞赏。
尝试切换到:
<li ng-repeat="user in scope.newArray">{{user.name}}</li>
我不认为 'Page2Controller' 在模板上下文中是已知的。
我猜你从来没有调用过那个函数..
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。
首先你需要一个 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.';
}
}
然后将使用数据绑定的 using 指令显示为
<p ng-bind-html="message"></p>
希望对您有所帮助!
谢谢!
我的控制器中有一个变量,想稍后在单击按钮时分配一个值。即
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无法显示动态添加的数据?
有人可以帮助我吗?对此表示赞赏。
尝试切换到:
<li ng-repeat="user in scope.newArray">{{user.name}}</li>
我不认为 'Page2Controller' 在模板上下文中是已知的。
我猜你从来没有调用过那个函数..
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。
首先你需要一个 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.';
}
}
然后将使用数据绑定的 using 指令显示为
<p ng-bind-html="message"></p>
希望对您有所帮助!
谢谢!