当前位置: 首页 > 知识库问答 >
问题:

当使用ng模型时,输入文本框上的AngularJS-Value属性被忽略?

姬奇思
2023-03-14

如果我将一个简单的输入文本框值设置为下面的“bob”,则使用AngularJS。如果添加了ng model属性,则不会显示该值。

    <input type="text"
           id="rootFolder"
           ng-model="rootFolders"
           disabled="disabled"
           value="Bob"
           size="40"/>

有人知道一个简单的工作来默认这个输入,并保持ng模型?我试图使用默认值的ng-bind,但这似乎也不起作用。

共有3个答案

殷安顺
2023-03-14

重写输入指令似乎确实可以完成这项工作。我对丹·亨萨克的代码做了一些小改动:

  • 在尝试使用$parse()之前添加了对ngModel的检查。在没有ngModel属性的字段上分配()
app.directive('input', function ($parse) {
  return {
    restrict: 'E',
    require: '?ngModel',
    link: function (scope, element, attrs) {
      if (attrs.ngModel && attrs.value) {
        $parse(attrs.ngModel).assign(scope, attrs.value);
      }
    }
  };
});

单于季
2023-03-14

Vojta描述了“角度方式”,但如果你真的需要这样做,@urbanek最近发布了一个使用ng init的解决方案:

<input type="text" ng-model="rootFolders" ng-init="rootFolders='Bob'" value="Bob">

https://groups.google.com/d/msg/angular/Hn3eztNHFXw/wk3HyOl9fhcJ

岳池暝
2023-03-14

这是期望的行为,您应该在控制器中定义模型,而不是在视图中。

<div ng-controller="Main">
  <input type="text" ng-model="rootFolders">
</div>


function Main($scope) {
  $scope.rootFolders = 'bob';
}
 类似资料:
  • 问题内容: 如果我将简单的输入文本框值设置为类似于下面的“ bob”,则使用AngularJS。如果添加了属性,则该值不显示。 任何人都知道可以通过简单的方法将此输入默认设置为某值并保持?我尝试将a 与默认值一起使用,但这似乎也不起作用。 问题答案: 这是理想的行为,您应该在控制器中而不是在视图中定义模型。

  • 问题内容: angularjs模板中的和属性之间有什么区别?如果我在使用value属性的字段上使用它,则它正常工作,但是如果我将该属性更改为它,它将停止工作。 问题答案: 根据 文档 ,采用 “角表达式,其值将绑定到 元素的属性”。 因此,当您使用时,它将被解释为一个表达式,并且被绑定到(可能是)。 对于评估表达式很有用- 与设置硬编码值相比没有优势。但是,如果您想使用硬编码值,则必须将其包含在:

  • 问题内容: 这似乎困扰着很多人(包括我)。 在AngularJS中使用指令填充标签的选项时,我无法弄清楚如何为选项设置值。对此的文档确实不清楚- 至少对于像我这样的简单人而言。 我可以像这样轻松设置选项的文本: 例如,何时: 设置选项值应该是(可能是)最简单的事情,但是到目前为止,我还是不明白。 问题答案: 参见 ngOptions ngOptions(可选) – { } –以下形式之一: 对于数

  • 问题内容: 我认为开箱即用的指令上使用众所周知的角度属性应该很容易。 例如,如果我的指令名称是myDirective,我想以这种方式使用它: 无需像下面的示例一样定义自定义点击属性(onClick) 似乎ng-click可以工作,但是您也需要在指令标签上也指定ng-controller,这也是我所不希望的。我想在周围的div上定义控制器 是否可以在指令上使用ng-click以及在父html元素上定

  • 我有以下输入-窗体-控件: 但是如果我像上面那样使用我的regex,我可以输入'、'或‘。符号。正确的正则表达式是什么?

  • 在angularJs中,我有一个输入文本框,如何设置默认值?我尝试了但失败了。