Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.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 myVar绑定到哪个元素?“ng init”的问题`_Javascript_Angularjs_Data Binding_Angularjs Ng Init - Fatal编程技术网

Javascript myVar绑定到哪个元素?“ng init”的问题`

Javascript myVar绑定到哪个元素?“ng init”的问题`,javascript,angularjs,data-binding,angularjs-ng-init,Javascript,Angularjs,Data Binding,Angularjs Ng Init,我想知道在使用nginit时幕后发生了什么 有时候nginit会做一些意想不到的事情,我调试起来很困难 假设我有以下结构: <!-- App --> <div ui-view> <!-- Component --> <custom-component> <!-- Transcluded component --> <transcluded-component>

我想知道在使用
nginit
时幕后发生了什么

有时候
nginit
会做一些意想不到的事情,我调试起来很困难


假设我有以下结构:

<!-- App -->
<div ui-view>

    <!-- Component -->
    <custom-component>

        <!-- Transcluded component -->
        <transcluded-component>

            <!-- Controller -->
            <div ng-controller="MyCtrl">

                <!-- Element -->
                <div ng-init="myVar = 'hello'">

                    {{myVar}}

                </div>
            </div>
        </transcluded-component>
    </custom-component>
</div>
在本例中,我跳过了两次函数调用,并保持了模板的干净。

有时
nginit
会做一些意想不到的事情,我的调试很困难

在其元素范围的上下文中计算角度表达式。许多指令(
ng repeat
ng controller
ng if
ng view
等)创建了它们自己的范围

有关详细信息,请参阅


避免使用
ng init
避免使用
ng init
。它混淆了模型和视图,使得代码难以理解、调试和维护。而是在控制器中初始化模型

从文档中:

恩吉尼特 此指令可能被滥用,以便在模板中添加不必要的逻辑量。
ngInit
只有一些适当的用途,例如用于对
ngRepeat
的特殊属性进行别名,如下面的演示所示;以及通过服务器端脚本注入数据。除了这几种情况之外,还应该使用而不是
ngInit
来初始化作用域上的值


更新 问:我还添加了一个我有时使用的代码块示例

        <!-- Controller -->
        <div ng-controller="MyCtrl">
            <!-- Element -->
            <div ng-init="myVar = 'hello'">
                {{myVar}}
            </div>
        </div>

通过使用模型和视图,代码变得更易于理解、调试和维护

感谢您的参考,但是,这并没有回答我关于绑定的问题。我还添加了一个我有时使用的代码块的例子。问题不是“它做了一些意想不到的事情”,我是说“我想知道在使用ng init时幕后发生了什么”,我的问题是“myVar绑定到哪个元素?”。在其元素范围的上下文中计算角度表达式。许多指令(
ng repeat
ng controller
ng if
ng view
等)创建了它们自己的范围。有关详细信息,请参阅。另请看。谢谢,这正是我要找的!如果你能用这个更新你的答案,我会很高兴地把它标记为接受。更新的答案。
        <!-- Controller -->
        <div ng-controller="MyCtrl">
            <!-- Element -->
            <div ng-init="myVar = 'hello'">
                {{myVar}}
            </div>
        </div>
app.controller("MyVar", function($scope) {
    this.$onInit = function() {
        $scope.myVar = 'hello';
    };
});