Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度UI引导模式形式范围“;“未定义”;_Javascript_Angularjs_Angularjs Scope_Angular Ui Bootstrap - Fatal编程技术网

Javascript 角度UI引导模式形式范围“;“未定义”;

Javascript 角度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

我有一个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.7
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;
                }
            }
        });
    };

    .....
    ......
    .......