题
我想知道AngularJS为一个领域获得标签的“最佳实践”方式是什么.使用jQuery,您只需使用“label for”查询进行查询,然后提取文本.虽然使用AngularJS可以这样做,但事情并不恰到好处.
假设你的HTML中有这样的东西:
<form name="MyForm" ng-controller="Ctrl"> <label for="MyField">My spoon is too big:</label> <input type="text" size="40" id="MyField" ng-model="myField" /> <br /><br /> You entered {{ myField }} for {{ myField.label }} </form>
控制器内部非常简单:
$scope.myField = 'I am a banana.';
基本上我想在输出中填充myField.label,“我的勺子太大了”.
我现在在做什么
我现在所做的就是执行一个查询,提取类似于jQuery方法的数据($(“label [for =’MyField’]”)).然后,如果不存在,我只是拉出占位符文本.它有效,但似乎有点开销.
我想要完成的是什么
我想要一些自定义表单验证,我想在邮件中包含标签.我只需要拉标签文本,这样我就可以非常一般地编写它,然后不必担心人们在游戏后期动态切换i18n数据.
小提琴
根据建议的解决方案:
https://jsfiddle.net/rcy63v7t/7/
您将HTML更改为以下内容:
<label for="MyField">{{ myFieldLabel }}</label> <input type="text" size="40" id="MyField" ng-model="myField" />
和你的JS到以下:
$scope.myFieldLabel = 'My spoon is too big:';
然后,您可以轻松获取/设置其值:
if ($scope.myFieldLabel === 'My spoon is too big:') { $scope.myFieldLabel = 'New label:'; }
请注意,新的AngularJS最佳实践要求始终在字段引用中使用“点”.如果您执行以下操作,它将非常适合:
<label for="MyField">{{ myField.label }}</label> <input type="text" size="40" id="MyField" ng-model="myField.value" />
和JS:
$scope.myField = { value: '',label: 'My spoon is too big:' };
然后,您始终可以轻松访问$scope.myField.label和$scope.myField.value.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。