【问题标题】: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;";
    }
}); 

【问题讨论】:

    标签: angularjs components hide ionic


    【解决方案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 中的工作原理。
    猜你喜欢
    • 2021-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    相关资源
    最近更新 更多