javascript - 如何根据 Angularjs 中的某些条件在 Controller 中创建作用域变量

标签 javascript angularjs

我在 Angularjs Controller 中的代码如下:

$scope.validElements = [                                    
                                 {
                                    "id": "One",              
                                 }, 
                                 {
                                    "id": "Two",
                                 }, 
                                 {
                                    "id": "Three",
                                 },
                                 {
                                    "id": "Four",
                                 }
                            ];

如何使 validElements 根据条件而有所不同 ( if(someService.someElement == "ABC") ) then

$scope.validElements = [                                    
                                 {
                                    "id": "One",              
                                 },
                                 {
                                    "id": "Three",
                                 }    
                        ];

否则

$scope.validElements = [                                    
                                {
                                    "id": "One",              
                                 }, 
                                 {
                                    "id": "Two",
                                 }, 
                                 {
                                    "id": "Three",
                                 },
                                 {
                                    "id": "Four",
                                 }
                        ];

如果可能,请提供建议或任何粗略的想法如何完成

最佳答案

您似乎想创建另一个作用域变量并将其设置为等于 someService,然后在 someSome 元素上放置一个监视。然后您可以在监视函数中处理条件。我这样做是为了观察服务变量

    $scope.validElements = [ // set default here               
         {
            "id": "One",              
         } // ...
    ];
    $scope.someService = someService;
    $scope.$watch('someService.someElement', function(newValue, oldValue) {
        // or a switch statment
        if(newValue == 'ABC'){
            $scope.validElements = [                                    
                     {
                        "id": "One",              
                     },
                     {
                        "id": "Three",
                     }    
            ];
        }else{
            // handle else condition
            $scope.validElements = [                                    
                    {
                        "id": "One",              
                     }, 
                     {
                        "id": "Two",
                     }, 
                     {
                        "id": "Three",
                     },
                     {
                        "id": "Four",
                     }
            ];
        }
    });

希望这有帮助!祝你好运

关于javascript - 如何根据 Angularjs 中的某些条件在 Controller 中创建作用域变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29137178/

相关文章:

javascript - 如何用JavaScript显示图像?

javascript - 切换选项卡让 CSS 变得疯狂

angularjs - AngularJS-具有完整外部控件的Youtube Player指令

javascript - 无法使用 AngularJS 连接到数据库

javascript - 如何根据 dblookup 结果在 xpages 中设置值字段?

javascript - 如何在不使用 Math.random() 函数的情况下使用 JavaScript 创建随机数生成器函数?

angularjs - 我们可以在 angularJS app.js 中一起使用 ngRoute 和 ui.router 吗?

javascript - AngularJS 清理和内存泄漏

jquery - Bootstrap 轮播在启动时不滑动

Javascript:选择元素的下一个兄弟并通过单击更改其类(不使用 ID)