离子,角度,显示或禁用控制器内的组件

Posted

技术标签:

【中文标题】离子,角度,显示或禁用控制器内的组件【英文标题】:Ionic , angular , Show or disable a component within controller 【发布时间】:2015-12-04 05:50:56 【问题描述】:

我有以下代码。以下代码显示 5 个标签项。 我想要做的是当用户点击任何标签项目时,它将被隐藏或空白。但是当我点击其中任何一个时,所有标签项目都被空白而不是我选择的项目。谁能给我一些想法?

<div data-ng-repeat="x in mylist">
   <a class="button" ng-click="hideme();" style="visibility">x</a> 
</div>  

.controller('MyCtrl', function($scope, $stateParams, chats)       
    $scope.hideme = function(index, value) 
        $scope.visibility = "background-color: #000000 !important;";
    
); 

【问题讨论】:

【参考方案1】:

首先,您可能想稍微改变一下对象结构。请记住,您的模型值中始终有一个点 (.)。

试试这个。

<div ng-app ng-controller="myCtrl">
    <div ng-repeat="x in myList">
        <a href="" ng-click="hide(x)" ng-hide="x.hide">x.value</a>
    </div>
</div>

function myCtrl($scope)
    $scope.myList = [
        value: "a"
    , 
        value: "b"
    , 
        value: "c"
    ];

    $scope.hide = function(obj)
        obj.hide = true;
    


JSFiddle

【讨论】:

嗨,Askash,您的代码有效。但我不太明白为什么我不能这样。 function myCtrl($scope)$scope.myList = [ value: ["a","b","c"]];$scope.hide = function(obj)obj.hide = true; 原因是,如果你检查 'a'、'b' 和 'c' 你会看到 angular 为每次重复添加了一个类调用 ng-scope。这意味着范围内的任何更改都将仅应用于该模型。但是,如果您直接将它添加到 $scope 对象,那么所有模型的行为都会发生变化。您可能想了解范围在 angularjs 中的工作原理。

以上是关于离子,角度,显示或禁用控制器内的组件的主要内容,如果未能解决你的问题,请参考以下文章

如何在离子框架的控制器中注入角度服务?

如何在角度中禁用matchip

离子框架和角度 ui 日历问题?

如何在角度组件中使用离子组件

如何通过角度代码操纵离子组件的样式

离子/角度动态组件导入