2016-02-15 73 views
-1

我正在嘗試創建用於理解基本概念的模塊和控制器。我正在使用角度js的這個版本AngularJS v1.5.0。我嘗試了下面的代碼,但它不起作用。angularjs模塊和控制器不起作用

<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 }}而不是值。任何人都可以指導我在哪裏做錯了。由於

回答

3

你有一個錯字:

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

將其更改爲:

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

當你宣佈你的應用程序作爲newModule,你還需要聲明時,使用它你控制器:

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

如果你注射$region確保定義/加載。

+0

由於其工作。 –

+0

絕對不需要謝謝,這就是我的意思。但是,您可以考慮將答案標記爲已接受,以便具有類似問題的其他人也可以找到可接受/正常工作的解決方案。請參閱:http://stackoverflow.com/help/someone-answers – iH8

1

我不確定使用$ region。但是在角度js中我們有一個$ scope的概念。所以如果你用$ scope替換$ region,你的代碼應該可以工作。

除此之外,在模塊定義一些錯字angulr

另一件事是,如果你有newModule定義模塊的名稱,那麼你必須使用定義的模塊來添加控制器和服務。

所以在控制器定義應用newModule

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

有關範圍的詳細信息,用於請通過它

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

什麼$區域?你是否使用工廠或服務? 。無論如何,如果你想顯示城市和國家在視圖中,你應該使用$範圍。

小提琴鏈接: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"; 
}); 
0

你甚至不控制器綁定到你的模塊。你的模塊變量名是newModule,你定義了一個名爲app的變量的控制器,我不知道你是否已經聲明瞭這個變量。因此它不能從你的控制器獲得任何值。所以更改如下:

app.controller (....)

newModule.controller (.....)