2016-03-25 82 views
0

我是一位非常优秀的计算机科学专业学生,在C++方面拥有丰富的经验,但我刚刚开始使用Javascript。实际的角度js控制器对象包含什么?

我一直在试图了解Angular Js是如何工作的,而且我有点卡在控制器上。我了解如何使用它们的基本知识,但我无法破译它们的构造方式和实际内容的语法。

w3教程指出“控制器是一个JavaScript对象,由标准JavaScript对象构造函数创建。”

和创建一个控制器的语法是:

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
}); 

哪一部分该代码是对象的构造? 我可能是完全错误的,但对于JavaScript中没有经验的人来说,它看起来应用程序对象的“控制器”函数是用'myCtrl'和'function($ scope){}作为参数调用的。

任何人都可以向我解释这段代码的第二行是在做什么以及为什么这些参数传递给它?

另外在哪里/什么是实际的控制器对象?如果我想物理记录控制器对象,我将如何引用它?

感谢您的帮助!

回答

0

我觉得你误解了这个概念。在AngularJs控制器是函数,但是当你在那个时候使用ng-controller绑定那个控制器到DOM元素的时候,你将该控制器的对象绑定到了你的html DOM元素。

Anf for second line:app.controller('myCtrl',function($ scope){ });通过编写这一行,您正在向您的模块注册名为“myCtrl”的控制器。通过这种方式,您告诉AngularJs这是我的控制器。

有很多方法可以在网上找到注册你的控制器。

1)

app.controller('myCtrl', function($scope) { 

     $scope.xyz="This is myCtrl" 

    }); 

2)

function myCtrl($scope){ 

     $scope.xyz="This is myCtrl" 
    }; 

    app.controller("myCtrl",myCtrl); 

另外,还要确保你给取的名字在第一个参数app.controller( “”, “”)。通过这个名字你控制器已注册到您的模块中。

+0

感谢您的帮助,您可以使用$范围声明变量!对于注册控制器的第一种方式,虽然对象的实际名称是什么?就像我想用console.log记录控制器对象一样,我会输入什么内容? – user1888863

+0

我认为你需要在javascript中阅读面向对象编程(oops)的概念。那么你可以创建控制器的对象并记录对象。您还可以使用可用的不同工具,如“ng-inspector”或“batarang”进行日志记录。这些都是登录angularjs的好工具。 –

0

Angularjs Controller处理您的逻辑,如处理用户输入,输出和其他东西,如API调用,其他计算等。

控制器有两个参数1)控制器的名字和2)功能是处理

var app = angular.module('myApp', []); 
app.controller('myCtrl', function($scope) { 
}); 

所以现在在上面的代码

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

使用此行定义你的应用程序模块

app.controller('myCtrl', function($scope) { //Your login for controller is here });

上面的代码表示定义控制器myCtrlapp

你可以声明变量或使用$scope这是唯一只myCtrl范围访问功能。你不能在控制器外部使用它。

如下 app.controller('myCtrl', function($scope) { $scope.myVar = "Hello World"; });