내 Angularjs 모듈을 추상화하려고 할 때 각도 컨트롤러에서 범위를 잃어가는 것 같습니다.ng-view를 사용하여 각진 모듈 간의 범위 축소
내 응용 프로그램 모듈을 사용하면 정상적으로 작동하지만 home.js 모듈을 app.layout으로 변경하면 $ scope가 더 이상 작동하지 않습니다.
누구든지 여기에서 문제를 발견 할 수 있습니까?
_Layout.html
<body class="docs-body" ng-app="app">
<div layout="column" ng-cloak>
<section layout="row" flex>
<div ng-include="'App/layout/sidenav.html'"></div>
<md-content class="_md layout-column flex" layout="column" flex="">
<div ng-include="'App/layout/toolbar.html'"></div>
<div class="container body-content">
@RenderBody()
</div>
</md-content>
</section>
</div>
</body>
@RenderBody를 (포함하고 머리를 왼쪽으로)()는 Index.html을
<!-- this is where content will be injected -->
<div ng-view></div>
<div>
<h1>Home Page</h1>
<p>{{ message }}</p>
</div>
내 애플 home.html을
을 제공합니다. jsangular.
.module('app', [
'app.core',
'app.layout',
]);
})();
layout.module.js
(function() {
'use strict';
angular.module('app.layout', [
'ngAnimate',
'ngMaterial',
'ngAria'
]);
})();
core.module.js
(function() {
'use strict';
angular.module('app.core', [
'ngRoute'
]);
})();
및 route.js : 마지막으로
angular.module('app.core')
.config(function ($routeProvider, $locationProvider) {
$routeProvider
// route for the home page
.when('/', {
templateUrl: 'App/layout/home.html',
controller: 'home'
});// End routeprovider
})// end config
그리고 범인 ... Home.js
(function() {
'use strict';
console.log('registering controller home before Angular');
angular
.module('app.layout')
.controller('home', home);
home.$inject = ['$scope'];
function home($scope) {
console.log('registering controller home');
// create a message to display in our view
$scope.message = 'Everyone come and see how good I look!';
}
})(); 내가 home.js에
.module('app);
.controller('home', home);
, 내가
.module('app.layout')
.controller('home', home);
이있는 경우 그러나 그것은
를 표시'Everyone come and see how good I look!'
은 $ scope.message 표시가 이제
,
{{message}}
나는 어떻게 든 여기에 범위를 잃어 버리고 있음을 알고 있지만, 나는 그것을 고칠 방법을 생각할 수 없다! 컨트롤러 외부에서 컨트롤러를 다시 선언해야합니까?
코어 모듈에 app.layout을 주입하려했지만 디버깅 할 때 컨트롤러를 빌드하지 않았습니다. 레이아웃에 코어를 삽입하려고했지만 여전히 빌드하지 않았습니다. 홈 컨트롤러에 연결할 수없는 것 같지만 모듈에 대한 종속성과 각 모듈간에 다른 방법을 얻는 방법을 파악하려고합니다. – cptHoek
콘솔에 오류가 표시 되었습니까? –
이름이 'home'인 컨트롤러가 등록되어 있지 않다는 것을 의미합니다.이 컨트롤러를 빌드하는 방법을 알면 이해가됩니다. – cptHoek