【问题标题】:How do I set the value of element in Angular.js如何在 Angular.js 中设置元素的值
【发布时间】:2014-09-24 15:21:11
【问题描述】:

为什么我不能在 Angular.js 中这样做:

document.getElementById('divid').value = 'Change Text to This';

什么是“正确”(Angular)的做法?

【问题讨论】:

标签: javascript angularjs frontend


【解决方案1】:

您必须将控制器绑定到您的标记并初始化您的 Angular 应用程序。

<div ng-app="myApp">
    <div id="divid" ng-controller="valueController">{{value}}</div>
</div>

然后你可以简单地在你的控制器中定义一个范围变量

myApp.controller("valueController", function($scope) {
    $scope.value = "Hi!";
});

认为最好在页面的 HTML 标签中使用 ng-app 指令

jsFiddle

【讨论】:

    【解决方案2】:

    在 Angular 中,您使用 ng-model 指令在模型(即 JS 变量)和视图(即 &lt;div&gt;)之间创建双向数据绑定。基本上,这意味着无论何时您更改视图中的数据(例如,通过输入),更改都会反映在您的 JS 变量中。见下文:

    HTML:

    <html ng-app="myApp">
        <div ng-controller="MyCtrl">
            <div>{{myVariable}}</div>
            <input type="text" ng-model="myVariable" />
        </div>
    </html>
    

    JS:

    /* App global module */
    var myApp = angular.module('myApp');
    
    /* Define controller to process data from your view */
    myApp.controller('MyCtrl', function($scope) {
    
       $scope.myVariable = "initialValue"; // this is the variable that corresponds to text inserted in your input
    
    });
    

    在这里,myVariable 将“initialValue”作为初始值。对输入的任何进一步更改都将覆盖此变量的值。

    还要注意{{myVariable}} 将变量数据注入到您的 div 中。当您更改输入中的值时,div 文本也将更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-01
      • 1970-01-01
      • 2013-01-20
      • 2015-10-08
      • 2021-08-30
      • 1970-01-01
      • 2018-04-17
      • 2020-05-19
      相关资源
      最近更新 更多