Javascript 是否建议在AngularJS控制器中使用jQuery方法?

Javascript 是否建议在AngularJS控制器中使用jQuery方法?,javascript,css,angularjs,angularjs-directive,angularjs-scope,Javascript,Css,Angularjs,Angularjs Directive,Angularjs Scope,是否建议在AngularJS控制器中使用jQuery方法 如果没有,我应该如何转换为下面的AngularJS 我知道我可以使用指令,但我需要一个干净简单的方法 $scope.onEnabled = function (id, enabled) { if (enabled) { jQuery('#policyRuleTitle-' + id).removeClass('collapsed'); jQuery('#policyRule-' + id).add

是否建议在AngularJS控制器中使用jQuery方法

如果没有,我应该如何转换为下面的AngularJS

我知道我可以使用指令,但我需要一个干净简单的方法

$scope.onEnabled = function (id, enabled) {

    if (enabled) {
        jQuery('#policyRuleTitle-' + id).removeClass('collapsed');
        jQuery('#policyRule-' + id).addClass('in');
        jQuery('#policyRule-' + id).css("height", "");
    } else {
        jQuery('#policyRuleTitle-' + id).addClass('collapsed');
        jQuery('#policyRule-' + id).removeClass('in');
    }
};

不,不推荐这种用法,因为完全用AngularJS就可以轻松完成

这是一个很好的起点:

<div id="#policyRuleTitle" ng-class="{ collapsed: enable }"></div>
<div id="#policyRule" ng-class="{ in: enable }"></div>


不,不建议使用这种用法,因为您完全可以在AngularJS中轻松完成

这是一个很好的起点:

<div id="#policyRuleTitle" ng-class="{ collapsed: enable }"></div>
<div id="#policyRule" ng-class="{ in: enable }"></div>


实现这一点的最佳方法是使用ng类和ng样式。 您可以在这里找到一个示例:


实现这一点的最佳方法是使用ng类和ng样式。 您可以在这里找到一个示例:


除了二进制Brain answer,如果您需要执行复杂的DOM操作,或者需要执行本机指令无法实现的任何操作,并且这些操作与DOM操作相关,则可以使用“指令”

您可以创建一个自定义指令,并在那里使用DOM执行您想要的任何操作


阅读此处:

除了二进制Brain answer,如果需要执行复杂的DOM操作,或者需要执行本机指令无法实现且与DOM操作相关的任何操作,则可以使用“指令”

您可以创建一个自定义指令,并在那里使用DOM执行您想要的任何操作

请阅读此处:

,因为这不是一个好的做法

如果要更改内置中使用的类和样式,请使用AngularJS提供的指令功能,而不是使用JQuery
.removeClass
.addClass

var myModule=angular.module('myModule',[]);
myModule.controller('myController',函数($scope){
$scope.areaStatus=true;
$scope.enabled=false;
$scope.myStyle={
“高度”:“0px”
}
$scope.onEnabled=函数(){
如果($scope.enabled){
$scope.areaStatus=true;
$scope.myStyle={
“高度”:“0px”
}
$scope.enabled=!$scope.enabled
}否则{
$scope.areaStatus=false;
$scope.myStyle={
“高度”:“50px”
}
$scope.enabled=!$scope.enabled
}
};
});
.in{
颜色:红色;
}
.崩溃{
颜色:绿色;
}
div{
边框:1px实心;
}

切换
这是一些文本
,因为这不是一个好的做法

如果要更改内置中使用的类和样式,请使用AngularJS提供的指令功能,而不是使用JQuery
.removeClass
.addClass

var myModule=angular.module('myModule',[]);
myModule.controller('myController',函数($scope){
$scope.areaStatus=true;
$scope.enabled=false;
$scope.myStyle={
“高度”:“0px”
}
$scope.onEnabled=函数(){
如果($scope.enabled){
$scope.areaStatus=true;
$scope.myStyle={
“高度”:“0px”
}
$scope.enabled=!$scope.enabled
}否则{
$scope.areaStatus=false;
$scope.myStyle={
“高度”:“50px”
}
$scope.enabled=!$scope.enabled
}
};
});
.in{
颜色:红色;
}
.崩溃{
颜色:绿色;
}
div{
边框:1px实心;
}

切换
这是一些文本


use,你不需要jQuery,因为ng类是你可以使用的方式,css部分也可以使用。看看我的回答,你不需要jQuery,因为ng类是你可以使用的方式,css部分也可以使用。看看我的回答,我也需要删除style'height'属性。jQuery('#policyRule-'+id).css(“height”,”);如何用ng风格来完成?我似乎不能允许一个错误condition@in_visible看一看我的更新……现在,当添加了
中的类
时,会添加高度,而当添加了
折叠时,会添加高度removed@in_visible我想这就是你想要的……同样,我也需要删除样式“高度”属性。jQuery('#policyRule-'+id).css(“height”,”);如何用ng风格来完成?我似乎不能允许一个错误condition@in_visible看一看我的更新……现在,当添加了
中的类
时,会添加高度,而当添加了
折叠时,会添加高度removed@in_visible我想这就是你想要的……同样,我也需要删除样式“高度”属性。jQuery('#policyRule-'+id).css(“height”,”);如何用ng风格来完成?我似乎不能允许像使用
ng class
ng style=“{height:your_condition?your_height:auto}”这样的条件
我需要从“style”中删除height属性。您不能删除HTML/CSS中的
height
属性。但是
auto
是它的默认值,这就是你想要做的。我也需要删除style'height'属性。jQuery('#policyRule-'+id).css(“height”,”);如何用ng风格来完成?我似乎不能允许像使用
ng class
ng style=“{height:your_condition?your_height:auto}”这样的条件
我需要从“style”中删除height属性。您不能删除HTML/CSS中的
height
属性。但是
auto
是它的默认值,这就是您想要做的。
angular.module('TestApp', [])
.controller('mycontroller',
    ["$scope",
    function($scope){

      $scope.div_class = "myDivClass"
      $scope.div_css = "{'background-color':'yellow'}"

    }]);