gpt4 book ai didi

javascript - 如何在 Angular Js 中的类上编写指令?

转载 作者:数据小太阳 更新时间:2023-10-29 05:07:18 26 4
gpt4 key购买 nike

限制选项通常设置为:

'A' - 只匹配属性名
'E' - 只匹配元素名称
'C' - 只匹配类名
'M' - 只匹配评论

'C' - 只匹配类名是行不通的

Class="form-control **valid-vehicleyear** ng-not-empty ng-dirty ng-valid-parse ng-valid ng-valid-required ng-touched"

我在与元素关联的类上创建了一个指令。在更改值时,我想调用一个 api 并更改其他元素的值。但是在变化上没有观察到变化。

控制指令.js

  function validVehicleyear($scope, $http) {
return {
restrict: 'C',
scope: {
ngModel: '=',
},
link: function (scope, element, attrs, ngModel) {
element.bind('change', function () {
console.log('here in validVehicleyear');
$http.get('api.php'+scope.ngModel)
.then(function (response) {
$scope.answers.VehicleMake = response.data;
});
});
}
}
}

车辆年份问题有一个类 valid-vehicleyear。我在这里缺少什么,或者在更改 answers.vehicleyear 时是否还有其他问题。我在 Vehicle year 问题的类里面写了一个指令 validVehicleyear,我想呼吁更改年份并为 Vehicle make 设置新选项,但它不起作用。

plnkr.co/edit/BFGXr7LNAe0KvQipj9JJ?p=preview

我检查了一下,发现外部/内部指令概念可以在这里工作。但不知道如何申请动态类(class)。

最佳答案

your other question 返回,我尝试了一些方法,但由于这个原因都不起作用:

您将指令作为类传递,但通过插值动态传递,这本身就是不好的做法 (https://docs.angularjs.org/guide/interpolation#known-issues)。插值类名并呈现元素,但在插值期间不编译指令。

唯一可行的是明确传递指令名称:

class="form-control valid-vehicleyear"

但是你所有的选择元素都会有这个类/指令。

您正试图将所有事情自动化,并且您将这一概念推向了极致,这使得您的代码非常难读并且显然无法调试。

逐个元素构建表单并在每个元素上放置自定义指令以更好地控制并没有错。

但是,将动态指令作为来自 JSON 对象的类传递是有问题的。

只需正常构建表单即可。它不会变酷或可读性变差,并且会遵循最佳实践 ( https://github.com/johnpapa/angular-styleguide/blob/master/a1/README.md#restrict-to-elements-and-attributes )

<select valid-vehicleyear>
<select valid-makemodel>
...

关于javascript - 如何在 Angular Js 中的类上编写指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821980/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com