ng-controller 如何定位正确的控制器文件?

问题描述

我是 AngularJS 的新手。我有一个包含多个项目的 Visual Studio 解决方案,我想将使用控制器的视图从一个项目移动到同一解决方案中的新项目,但我不确定是否必须移动我的控制器。目前,控制器和视图位于同一个项目中。视图使用 ng-controller 指令将控制器附加到 DOM。

我不确定 ng-controller 如何找到控制器。在我看到的每个示例以及我正在使用的整个应用程序中,ng-controller 总是等于一个没有指向它的路径的控制器名称,例如,ng-controller="MyController"。那么,它如何知道控制器的位置?

例如,这是我的 cshtml 视图中的匿名片段:

@model MyProject.viewmodel.Panel.Myviewmodel
<div id="Panel"
    ng-controller="MyController" 
    ng-init="MyController.initValues(@Model.Id,...,...)">
</div>

ng-controller 如何找到 MyController,如果我将它的视图移动到与他们当前共享的项目不同的项目,它还会找到 MyController 吗?

解决方法

<div ng-app="myApp" ng-controller="myCtrl">

Full Name: {{firstName + " " + lastName}}

</div>

<script>

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

// **** AngularJs will find it or look for it from where ever              ****
// **** you define in the app.controller('xxxx') variable                  ****
// **** which is alias to a Namespace 'myApp'                              **** 

app.controller('myCtrl',function($scope) {
    $scope.firstName = "John";
    $scope.lastName = "Doe";
});

</script>