Angular SPA 数据绑定
Angular SPA databinding
我的 angular SPA 数据绑定没有自动更新。希望你能告诉我为什么。
-
这是我的 JS 文件:
var app = angular.module('SDMApp', ['ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/para', {
templateUrl: 'view/ParaView.html',
controller: 'MainController'
});
});
app.controller('MainController', function($scope) {
$scope.CurrentlyShowing = "Hello";
});
还有我的 html 文件:
<!DOCTYPE html>
<html ng-app="SDMApp">
<head lang="en">
<meta charset="UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular-route.min.js"></script>
<script src="Angular.js"></script>
<title></title>
</head>
<body ng-controller="MainController">
<div ng-view></div>
<input ng-model='CurrentlyShowing'>
</body>
</html>
还有我的模板:
<p>{{ CurrentlyShowing }}</p>
-
虽然它最初显示的是 "Hello",但当我在我的输入元素(正文中的 html 输入元素)中写入时,模板中的段落不会更新。这是这种情况的一个例子:http://plnkr.co/edit/ALEDabL7lmKKgFmGzCce?p=preview .
当我用模板中的段落替换 ng-view div 并写入我的输入元素时,它会正常更新。这是这种情况的一个例子:http://plnkr.co/edit/TniFrGYBnNQLz8A3BfQ5?p=preview .
谁能告诉我哪里出了问题?
您指定了两次控制器
app.config(function ($routeProvider) {
$routeProvider
.when('/para', {
templateUrl: 'view/ParaView.html',
controller: 'MainController' //1st time
});
});
第二次来这里<body ng-controller="MainController">
从你的配置块中删除它,它就会工作。
app.config(function ($routeProvider) {
$routeProvider
.when('/para', {
templateUrl: 'view/ParaView.html'
});
});
如果要在路由中定义controller,需要在模板中包含,否则不在controller范围内。
我的 angular SPA 数据绑定没有自动更新。希望你能告诉我为什么。
-
这是我的 JS 文件:
var app = angular.module('SDMApp', ['ngRoute']);
app.config(function ($routeProvider) {
$routeProvider
.when('/para', {
templateUrl: 'view/ParaView.html',
controller: 'MainController'
});
});
app.controller('MainController', function($scope) {
$scope.CurrentlyShowing = "Hello";
});
还有我的 html 文件:
<!DOCTYPE html>
<html ng-app="SDMApp">
<head lang="en">
<meta charset="UTF-8">
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.9/angular-route.min.js"></script>
<script src="Angular.js"></script>
<title></title>
</head>
<body ng-controller="MainController">
<div ng-view></div>
<input ng-model='CurrentlyShowing'>
</body>
</html>
还有我的模板:
<p>{{ CurrentlyShowing }}</p>
-
虽然它最初显示的是 "Hello",但当我在我的输入元素(正文中的 html 输入元素)中写入时,模板中的段落不会更新。这是这种情况的一个例子:http://plnkr.co/edit/ALEDabL7lmKKgFmGzCce?p=preview .
当我用模板中的段落替换 ng-view div 并写入我的输入元素时,它会正常更新。这是这种情况的一个例子:http://plnkr.co/edit/TniFrGYBnNQLz8A3BfQ5?p=preview .
谁能告诉我哪里出了问题?
您指定了两次控制器
app.config(function ($routeProvider) {
$routeProvider
.when('/para', {
templateUrl: 'view/ParaView.html',
controller: 'MainController' //1st time
});
});
第二次来这里<body ng-controller="MainController">
从你的配置块中删除它,它就会工作。
app.config(function ($routeProvider) {
$routeProvider
.when('/para', {
templateUrl: 'view/ParaView.html'
});
});
如果要在路由中定义controller,需要在模板中包含,否则不在controller范围内。