【问题标题】:Angularjs placeholder not showing when dynamically generate textboxAngularjs占位符在动态生成文本框时不显示
【发布时间】:2015-11-02 15:49:31
【问题描述】:

我正在使用 angularjs 生成动态文本框。我在控制器中设置了一个数组,并使用 ng-repeat 在视图中重复。这是控制器代码:-

this.total_options = [
        {text : 'form.options.Option1' , placeholder: 'Enter Option Here'},
        {text: 'form.options.Option2',  placeholder: 'Enter Option Here' }
    ];

现在我正在重复这个选项,例如:-

<li data-ng-repeat="option in mcssController.total_options">                
    <input required="required" type="text"  ng-model="option.text" class="option" placeholder="{{option.placeholder}}" />
</li>

但是当页面被渲染时,文本框显示 ng-model 属性“form.options.optoin1”而不是占位符(“在此处输入选项”)。我该如何解决这个问题?

【问题讨论】:

  • 你能发布整个 HTML 文件吗?
  • HTML 查看 plz Gitesh
  • 我认为我已经发布了相关内容。相关内容与该主题没有任何关系。 @levi
  • 占位符仅在输入字段未填写时才会显示。但在您的情况下,您使用 option.text 进行设置

标签: angularjs angularjs-ng-repeat


【解决方案1】:

看看你把表格清空了,应该就能看到占位符了!

【讨论】:

    【解决方案2】:

    试试:

    <li data-ng-repeat="option in mcssController.total_options">                
        <input required="required" type="text" ng-init="model=$eval(option.text)"  ng-model="model" class="option" placeholder="{{option.placeholder}}" />
    </li>
    

    您希望 ngModel 绑定到模型,而不是表示字符串的属性。由于要将字符串解释为模型,因此可以使用 $scope.$eval。如果您在 ngInit 表达式中使用 $scope.$eval,它应该可以工作,然后使用 result 绑定到 ngModel。

    【讨论】:

    • 如何访问模型中的文本框值。我想要模型上的表单对象。模型名称生成类似于 form.options.option 所以在模型中我可以通过 $scope.form 获取所有值。但它不能以这种方式工作。 @pixelbits
    猜你喜欢
    • 2016-10-25
    • 1970-01-01
    • 2020-10-27
    • 2018-10-30
    • 1970-01-01
    • 2022-01-21
    • 2020-08-17
    • 1970-01-01
    • 2021-10-31
    相关资源
    最近更新 更多