angularjs模块和控制器不起作用

时间:2016-02-15 06:33:42

标签: angularjs

我正在尝试创建模块和控制器以理解基本概念。我正在使用角度为js的AngularJS v1.5.0版本。我试过下面的代码,但它不起作用。

<div ng-app="fModule" ng-controller="fController">
    {{ country + "" + city  }}
</div>

var newModule = angulr.module("fModule",[]);
app.controller("fController",function($region){
    $region.country = "Pakistan";
    $region.city = "Karachi";   
});

但是上面的代码不起作用,它只返回相同的变量{{ country + "" + city }}而不是值。任何人都可以指导我做错的地方。感谢

4 个答案:

答案 0 :(得分:3)

你有一个错字:

var newModule = angulr.module("fModule",[]);

将其更改为:

var newModule = angular.module("fModule",[]);

当您将应用宣布为newModule时,您还需要在声明控制器时使用它:

newModule.controller("fController",function($region){

如果您正在注射$region,请确保已定义/加载。

答案 1 :(得分:1)

我不确定使用$ region。但是在角度js中我们有一个$ scope的概念。因此,如果用$ scope替换$ region,则代码应该可以正常工作。

除了模块定义中的一些错误 angulr angular

另一件事是,如果您使用 newModule 定义模块名称,则必须使用已定义的模块添加控制器和服务。

所以在控制器定义应用 newModule

var newModule = angular.module("fModule",[]);
newModule.controller("fController",function($scope){
    $scope.country = "Pakistan";
    $scope.city = "Karachi";   
});

有关范围的更多详情,请仔细阅读

https://docs.angularjs.org/guide/scope

答案 2 :(得分:0)

用于的$地区是什么?你使用工厂或服务吗? 。无论如何,如果你想在视图中显示城市和国家,你应该使用$ scope。

小提琴链接:https://jsfiddle.net/um8p6pd7/1/

HTML:

<div ng-app="test">
   <div ng-controller="fModule">
    {{ country + " " + city  }}
   </div>
</div>

控制器:

 angular.module('test', []);
 angular.module('test').controller('fModule', function($scope, $timeout) {
    $scope.country = "Pakistan";
    $scope.city = "Karachi"; 
 });

答案 3 :(得分:0)

您甚至无法将控制器绑定到您的模块。您的模块变量名称为newModule,并且您将控制器定义为名为app的变量,我甚至不确定您是否已声明该变量。因此,它无法从您的控制器获取任何值。所以改变以下:

app.controller (....)

newModule.controller (.....)