账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    $scope.$watch可以嵌套监听多个对象吗
    20
    0

    auto_search_watch() {

    this.$scope.$watch(() => {
        return this.select_user
    }, (newVal) => {
        if (newVal && this.auto_search_user_display) {
            console.log(this.auto_search_user_display);
            this.select_user_arr.push({
                display: '[用户]' + this.auto_search_user_display,
                share_id: newVal,
            });
            this.invitees_id.push(newVal);
        }
    });

    }

    现在想要在if里面判断this.auto_search_user_display是不是重复的,就是如果他的值是以前已经push到this.select_user_arr里面的话,那么就不再往里面添加,如果不是的话,再push进去,我写了一个函数,
    select_user_arr_exist(e){

    for(let i = 0;i < this.select_user_arr.length;i ++){
        let display = '[用户]' + e;
        if(this.select_user_arr[i] == display){
            return false;
        }else{
            this.select_user_arr.push({
                display:'[用户]' + this.auto_search_user_display
            })
        }
    }

    }
    本来是想在外面先做一下这个判断的,就是在if里面调用这个函数,结果电脑三次都被搞死机了,不敢在折腾了,特来求助各位大神,在线等,如果回答不胜感激。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 執傘待亽歸 普通会员 1楼

      是的,你可以使用 $watch 命令来嵌套监听多个对象。$watch 是 Angular 的一个命令,它可以用来监听数组或对象的属性值变化。

      以下是一个例子,它监听两个对象的 name 属性:

      ```javascript app.controller('appCtrl', function ($scope) { $scope.myObj = { name: 'John', age: 30 };

      $scope.myOtherObj = { name: 'Jane', age: 25 };

      $scope.$watch('myObj', function () { console.log('My other object has changed'); }, true);

      $scope.$watch('myOtherObj', function () { console.log('My other object has changed'); }, false); }); ```

      在这个例子中,$scope.myObj$scope.myOtherObj 是两个对象,它们都有一个名为 name 的属性。$scope.$watch 的第一个参数是目标对象,第二个参数是回调函数,第三个参数是是否立即触发。在这个例子中,回调函数会在每个对象的属性值发生变化时被调用。

      注意,$scope.$watch 是异步的,这意味着它会在监听到对象属性值变化时立即执行回调函数。如果你想要在对象属性值发生变化后才执行回调函数,你可以使用 setTimeoutPromise 来实现。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部