如果我在这里遗漏了一个简单的概念,我很抱歉。我已经使用大量指令开发了我的应用程序,以放入我网站的各个部分。他们有一个模板和一个控制器,我在直接内部分配控制器。我打算在网站的其他地方使用这些位
<div class="navbar navbar-inverse navbar-fixed-top">
<div class="container-fluid">
<div class="navbar-header">
<ng-blah-logo></ng-blah-logo>
</div>
<div class="navbar-collapse collapse">
<ng-blah-login></ng-blah-login>
</div>
<!--/.navbar-collapse -->
</div>
</div>
<ng-blah-marketplace-form></ng-blah-marketplace-form>
JS(我认为是)非常简单:
var ngBlahMarketplaceFormCtrl = function($scope) {
console.log($scope)
$scope.form.name = ''
$scope.form.phone = ''
$scope.form.firm = ''
$scope.form.brief = ''
$scope.submit = function(){
console.log('ngBlahMarketPlaceFormCtrl::submit()')
console.log($scope.form)
}
}
app.directive('ngBlahMarketplaceForm', function () {
return {
restrict: 'E'
, transclude: true
, replace: true
, templateUrl: '/resources/ngViews/marketplaceForm.html'
, controller: 'ngBlahMarketplaceFormCtrl'
};
});
var ngBlahLoginCtrl = function($scope) {
console.log($scope)
$scope.default = {}
$scope.default.username = 'username' ;
$scope.default.password = 'password';
$scope.form = _.clone($scope.default) ;
$scope.submit = function() {
console.log('ngBlahLoginCtrl::submit()')
}
$scope.help = function() {
console.log('ngBlahLoginCtrl::help()')
}
}
// login form and the controller to logic
app.directive('ngBlahLogin', function () {
return {
restrict: 'E'
, transclude: true
, replace: true
, controller: 'ngBlahLoginCtrl'
, templateUrl: '/resources/ngViews/loginThin.html'
};
});
好的,所以我遇到的问题是只创建了一个范围。当我调查 DOM 时,唯一带有 class="ng-scope" 的元素是 Body 标签。我做了什么来得到这种行为?我是否需要发布更多代码来帮助深入了解这一点?
先感谢您!
编辑:js fiddle: http: //jsfiddle.net/U5UxX/ 在 JS Fiddle 内部,您可以看到两个不同控制器内部控制台的两个日志。两次它都记录范围变量,并且在这两种情况下 scope.id 都是相同的
编辑:澄清问题,即我的两个控制器共享相同的 $scope 变量。页面按预期“呈现”(HTML)。出于某种原因,唯一具有 class="ng-scpoe" 属性的元素是 body 标记(它也包含 ng-app 属性)。
再次感谢