Angularjs 角度注入视图,但不绑定

Angularjs 角度注入视图,但不绑定,angularjs,Angularjs,在Index.html中,我定义了: <html xmlns="http://www.w3.org/1999/xhtml" ng-app="bwp"> <head> <title></title> <script src="Scripts/angular.min.js"></script> <script src="Scripts/angular-route.min.js"></scrip

在Index.html中,我定义了:

<html xmlns="http://www.w3.org/1999/xhtml" ng-app="bwp">
<head>
   <title></title>
   <script src="Scripts/angular.min.js"></script>
   <script src="Scripts/angular-route.min.js"></script>
   <script src="js/app.js"></script>
   <script src="app/landingController.js"></script>
</head>
<body>
 <div ng-view></div>
 </body>
</html>
var app = angular.module("bwp", ["ngRoute"]);

app.config(function ($routeProvider) {
    $routeProvider.when(
        '/main', {
            templateUrl: 'app/test.html',
            controller: 'testController'
        })
        .otherwise({ redirectTo: '/main' });
});
以下是完整的testController.js:

(function() {
   var app = angular.module("bwp");
   var landingController = function ($scope, $http) {
    $scope.test = "this is a test";
};

app.controller("landingController", landingController);

}());
在测试视图中,我定义了:

<h1 ng-controller="landingController">
{{test}}
</h1>

{{test}}
呈现页面时(通过inspect元素):


{{test}}
  • 请注意,它标识控制器和范围

因此…Angular注入视图,但未按预期绑定$scope.test。我做错了什么?

您的testController定义在哪里?“在我定义的测试控制器中”是什么意思?在angular启动后(例如,从控制器内部),您不能向angular添加额外的控制器/指令/服务。抱歉,不清楚。我更新了代码。我的意思是在一个单独的文件testController.js中定义了控制器。那么,正确的方法是什么呢?该控制器注册为“着陆控制器”-您仍然没有“testController”,这是您在路线中要求的。查看angular的一个路由示例-@Sacho是正确的,而且您错误地销售了控制器/文件。您正在加载一个名为“landingController.js”的脚本,但它是您编写的真实名称,即“testController.js”。所以您有3个错误:1)脚本标记应该是“testController.js”2)在路由中您应该定义了“landingController”3)您不应该在部分(测试视图)中声明ng控制器,因为您已经在路由提供程序中声明了它。是的,我修复了所有这些。这是一个工作版本(名称略有不同)
<h1 ng-controller="landingController" class="ng-scope ng-binding">
{{test}}
</h1>