当前位置: 首页 > 面试题库 >

如何向组件添加ng-model功能

西门骁
2023-03-14
问题内容

ng-model上的角ng-change传递给子指令

基本上,我希望能够将ng-model从父指令传递给子指令。我只能使用2向绑定值,但是这样我将无法在child元素的parent指令中使用ng-
change。我也可以使用ng-click,但这不适用于非单击式更改(例如,文本区域而不是复选框)。所以我想知道是否有一种方法可以使自定义指令具有ng-
model / ng-
change对,类似于输入,按钮,文本区域和其他html元素的方式。我想避免使用emit,on,watch,传递回调等。我只想能够对自定义指令执行[input
type =“ checkbox” ng-model =“ ngModel”]而不是输入。

父模板

<child ng-model="x" ng-change="x()"></toggle>

家长指令

$scope.x = function() {console.log('hi')};

子模板

<div>
     <input type="checkbox" ng-model="ngModel">
</div>

儿童指令

$scope.ngModel = $element.controller('ngModel');

我的角度版本是1.4.8 btw。

谢谢 :)


问题答案:

几乎与@georgeawg答案相同,但使用指令方法(自component1.5+版本引入,但作者具有1.4.8):

angular.module('myApp', [])

.controller('MyCtrl', ['$scope', function MyCtrl($scope) {



}])

.directive('inputComponent', [function () {

        var myDirective = {

            restrict: 'E',

            require: 'ngModel',

            templateUrl: "checkboxComponent.html",

            link : function(scope, element, attrs, ngModelCtrl){

                scope.updateModel = function(ngModel) {

                    ngModelCtrl.$setViewValue(ngModel);

                }

            }

        }

        return myDirective;

}]);


fieldset {

  margin-top: 1em;

}


<script src="//code.angularjs.org/1.4.8/angular.js"></script>



<div ng-app="myApp">

  <div ng-controller="MyCtrl">



    <input-component ng-model="value"

                     ng-change="value2=value"></input-component>





    <fieldset>

      <p>value = {{value}}</p>

      <p>value2 = {{value2}}</p>

    </fieldset>



  </div>



  <script type="text/ng-template" id="checkboxComponent.html">

    <div>

         <input type="text" ng-model="ngModel" ng-change="updateModel(ngModel)" />

    </div>

  </script>



</div>


 类似资料:
  • 问题内容: 我想在JDialog中添加诸如TextField,Button等组件。 问题答案: 1)首先创建一个Jpanel 2)将组件添加到该JPanel 3)创建JDialog 4)将JPanel添加到JDialog

  • 我尝试将操作"addProducts"添加到组件中。但是当我点击它时,我看到一个错误,请帮我处理,提前感谢! 我不明白我的错误在哪里(

  • 所以我有一个Vue2应用程序。我已经创建了一个组件"u按钮" 当我导入它并在另一个组件中使用它时,我希望能够向它添加一个单击功能。然而,目前它在u按钮组件上寻找函数,而不是它正在使用的组件。 例如,在下面,如果我点击第一个按钮什么也没发生,如果我点击第二个按钮,我得到控制台日志。 但是,如果我在u按钮组件上添加一个方法,那么它将调用该方法。那么,我怎样才能让我下面的例子起作用呢?我唯一能想到的就是

  • 问题内容: 我是ReactJS和JSX的新手,下面的代码有一些问题。 我试图将多个类添加到每个属性: 我的React组件是: 问题答案: 当确定(不)使用的类需要大量逻辑时,我使用类名。一个 过于简单的例子 : 就是说,如果您不想包含依赖项,那么下面会有更好的答案。

  • 问题内容: 我是ReactJS和JSX的新手,下面的代码有一些问题。 我试图将多个类添加到每个属性: 我的React组件是: 问题答案: 当确定(不)使用的类需要大量逻辑时,我使用类名。一个 过于简单的例子 : 就是说,如果您不想包含依赖项,那么下面会有更好的答案。

  • 问题内容: 我已经看到了几种有神论的方法,它们似乎都起作用,但是我只是想知道一种方法是否比另一种更好。 例如,一个叫你可以这样做: 您还可以执行以下操作: 这些“正确”之一吗? 问题答案: 来自类javadoc的文字副本 JFrame类与Frame略有不兼容。像所有其他JFC / Swing顶级容器一样,JFrame包含JRootPane作为其唯一的子级。根窗格提供的内容窗格通常应包含JFrame