Javascript 角度UI引导模式形式范围“;“未定义”;
我有一个uibootstrap手风琴“angular_accordion.html”,带有一个打开模式“new_project_modal.html”的按钮,模式中输入的值显示在twitter引导面板的视图“angular_tabel.html”中,带有一个打开相同模式“new_project_modal.html”的按钮,我想在输入字段中显示值,以便用户可以编辑,但值在控制器“modal_new_project.js”的作用域中不可用 另一件我不明白的事情是,在“new\u project\u modal.html”中,ng controller=“ModalDemoCtrl as modalScope”,我必须使用ng model=“modalScope.name”,ng model=“name”不工作,没有数据绑定,在controller中没有作用域,为什么?当它在其他视图中像ng model=“something”一样工作而不需要“modalScope”时 AngularJS:1.4.7Javascript 角度UI引导模式形式范围“;“未定义”;,javascript,angularjs,angularjs-scope,angular-ui-bootstrap,Javascript,Angularjs,Angularjs Scope,Angular Ui Bootstrap,我有一个uibootstrap手风琴“angular_accordion.html”,带有一个打开模式“new_project_modal.html”的按钮,模式中输入的值显示在twitter引导面板的视图“angular_tabel.html”中,带有一个打开相同模式“new_project_modal.html”的按钮,我想在输入字段中显示值,以便用户可以编辑,但值在控制器“modal_new_project.js”的作用域中不可用 另一件我不明白的事情是,在“new\u project\u
UI引导:0.14.3 angular_accordion.html:
至于你的代码,它有点难理解,我认为其中一些可能不存在。函数调用似乎与容纳它们的控制器不在一起。因此,对于你问题的实际方面,我不会有多大帮助。如果你想创建一个plunker,我会更新这个答案,然后再尝试一下你的代码和具体问题 至于更多地了解控制器的语法(问题的第二部分),这可能对您有用,因为我认为您可能在一些地方使用了错误的scope版本
如果使用以下标准控制器命名:
<div ng-controller="SampleController">
<span ng-bind="name"></span>
</div>
app.controller('ModalInstanceCtrl', function ($scope) {
$scope.name = "namegoeshere";
app.controller('ModalInstanceCtrl', function ($scope) {
var self = this;
self.name = "namegoeshere";
如果将控制器用作语法,则相同的语法如下所示:
<div ng-controller="SampleController as ctrl">
<span ng-bind="ctrl.name"></span>
</div>
常见的用例是,当您有具有不同控制器的嵌套视图,并且每个视图上都有一个“$scope.name”,但它们的值不同。哪个属于哪个范围?当我试图把我的头绕在它周围时,我发现这篇博客文章非常有用
好的,主要有两个原因 1) 对角度控制器定义“控制器为”和($scope VS this)中的更改缺乏了解。(文档中仍然没有显示其推荐方法“控制器作为”的示例) 2) 模态实例控制器和模态html模板控制器之间的混淆,即模态的控制器只是$uibModal.open({…})中定义的,在模态的模板中不需要 new_project_modal.html:(之前) modal_new_project.js:(之后)
这个关于访问作用域的不同方式的信息对我来说是新的,我会研究它,你展示了两个选项,一个没有“As”语法,另一个有它,我的问题是我在这里没有选择,我想使用它没有“As”,但它只是不绑定。它在controller中不可用,$scope.model未定义。如果您可以在Plunkr中重现未定义的绑定问题,我很可能能够找出问题所在。有时,在这些工具中创建简化的测试用例会照亮缺失的部分,最终你会找到答案。:)
<div ng-controller="SampleController">
<span ng-bind="name"></span>
</div>
app.controller('ModalInstanceCtrl', function ($scope) {
$scope.name = "namegoeshere";
<div ng-controller="SampleController as ctrl">
<span ng-bind="ctrl.name"></span>
</div>
app.controller('ModalInstanceCtrl', function ($scope) {
var self = this;
self.name = "namegoeshere";
<div ng-controller="ModalDemoCtrl as modalScope">
..........
.....
<input type="text" class="form-control" ng-model="modalScope.projectname">
<div>
..........
.....
<input type="text" class="form-control" ng-model="modalScope.projectname">
..........
....
.
$scope.open = function () {
var modalInstance = $uibModal.open({
templateUrl: 'partials/new_project_modal.html',
controller: 'ModalInstanceCtrl',
scope: $scope,
resolve: {
projectName: function () {
return $scope.projectname;
}
}
});
};
.....
......
.......
..........
..........
.
var vm = this;
vm.open = function () {
var modalInstance = $uibModal.open({
templateUrl: 'partials/new_project_modal.html',
controller: 'ModalInstanceCtrl',
controllerAs: 'modalScope',
resolve: {
projectName: function () {
return vm.projectname;
}
}
});
};
.....
......
.......