2015-11-12 98 views
0

我做Angularjs的過程中,我所要做的工作,但對我來說是IMPOSIBLE運行此:

app.js:

function OcultarController($scope) { 
    $scope.oculto = true; 

    $scope.cambioColor = function() { 
    $scope.oculto = !$scope.oculto; 
    }; 
} 

angular.module('app', []); 
angular.module('myModule').config(['$controllerProvider', function($controllerProvider) { 
    $controllerProvider.allowGlobals(); 
}]); 

的index.html

<html ng-app="app"> 
    <head> 
    <meta charset="utf-8"> 
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js"></script> 
    <script src="app.js"></script> 
    </head> 

    <body> 
    <div ng-controller="OcultarController"> 
     <p style="background-color:red;" ng-show="oculto">ROJO</p> 
     <p style="background-color:green;" ng-hide="oculto">VERDE</p> 
     <button ng-click="cambioColor()">Cambiar color</button> 
    </div> 
    </body> 
</html> 

我試着讓它工作,但我做不到,我在Angularjs新手,我不知道如果我做得很好,這次演習只是告訴我複製代碼,但我看到的並不那麼容易。

控制檯告訴我(我用firefox):

Error: [$injector:nomod] http://errors.angularjs.org/1.3.15/$injector/nomod?p0=myModule angular.min.js:6:417 
"Error: [ng:areq] http://errors.angularjs.org/1.3.15 /ng/areq?p0=OcultarController&p1=not%20a%20function%2C%20got%20undefined 
R/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:6:417 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:19:1 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:20:78 
Fe/this.$get</<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:75:396 
B/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:57:100 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:7:406 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:56:471 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:51:335 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:51:352 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:51:352 
D/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:50:444 
uc/d/</<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15 /angular.min.js:18:4 
Pe/this.$get</[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:11 
Pe/this.$get</[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:126:236 
uc/d/<@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:17:477 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:36:313 
uc/[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:17:1 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:18:179 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:17:1 
@https://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:250:429 
[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:164:283 
lf/[email protected]://ajax.googleapis.com/ajax/libs/angularjs/1.3.15/angular.min.js:32:384 
" 
+0

''=>您缺少一個」 在這裏 –

+0

改變這種HTML負荷,但錯誤依然存在 –

+0

使用不精縮的角度看可讀的錯誤。 [_Module'myModule'不可用!您拼錯了模塊名稱或忘記加載模塊名稱。如果註冊一個模塊,確保你指定依賴關係作爲第二個參數._](https://docs.angularjs.org/error/$injector/nomod?p0=myModule) – Grundy

回答

1

首先,你在這裏創建兩個模塊(這不一定是一個問題,但在你的情況我想你不需要一個):

angular.module('app', []); 
angular.module('myModule'). 

將其更改爲:

var app = angular.module('app', []); 
app.config(['$controllerProvider', function($controllerProvider) { 
    $controllerProvider.allowGlobals(); 
}]); 

app.controller('OcultarController', OcultarController); 
+0

完美!!!!這對我有用,謝謝!你能解釋給我嗎?因爲我想使用全局函數作爲控制器,但是我在這裏看到的是,我將它作爲適當的函數來進行分配。 –

+0

@JoseteManu你只是沒有創建名爲_myModule_的模塊,但嘗試使用它 – Grundy

+0

這裏沒有太多解釋。 'app'變量將保存名爲「app」的角度模塊的引用(這可以是任何你想要的),並且你可以在其上設置配置。此外,你告訴角你在你的應用模塊中有一個名爲「OcultarController」的控制器。 – laszlokiss88

0

你必須告訴你的 「應用程序」,它應加載你的模塊「myModule」。

變化

angular.module('app', []); 

angular.module('app', ['myModule']); 

,並將其移動到文件的結尾。

0

普拉克:http://plnkr.co/edit/Vx5FuIemuj636r3ixzWt?p=preview

angular.module('app', []).controller("OcultarController", ["$scope", function($scope) { 
    $scope.oculto = true; 

    $scope.cambioColor = function() { 
    $scope.oculto = !$scope.oculto; 
    }; 
}]).config(['$controllerProvider', function($controllerProvider) { 
    $controllerProvider.allowGlobals(); 
}]); 
相關問題