gpt4 book ai didi

AngularJS - 获取字段的标签文本

转载 作者:行者123 更新时间:2023-12-04 13:31:49 24 4
gpt4 key购买 nike

问题

我想知道 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>

Controller 内部非常简单:
$scope.myField = 'I am a banana.';

基本上我想填充 myField.label在“我的勺子太大”的输出中。

我现在在做什么

我现在所做的只是执行一个查询,该查询提取类似于 jQuery 方法 ( $("label[for='MyField']")) 的数据。然后,如果那不存在,我只是拉占位符文本。它有效,但似乎有点开销。

我想要完成的事情

我想要一些自定义表单验证,并且我想在消息中包含标签。我只需要拉出标签文本,这样我就可以非常通用地编写它,然后不必担心人们在游戏后期动态切换 i18n 数据。

fiddle

根据建议的解决方案:
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 .

关于AngularJS - 获取字段的标签文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29700715/

24 4 0