无法访问范围值

时间:2016-11-22 06:19:50

标签: javascript angularjs angular scope angularjs-scope

我在html中有这样的代码:

<div ng-if="item.shareText">
 <textarea></textarea>
  <div>
    <select ng-model="shareOptions">
      <option value="PUBLIC" selected>public</option>
            <option value="FOLLOWERS">followers</option>
            <option value="INDIVIDUAL">individuals</option>
          </select>
          <div ng-if="shareOptions == 'INDIVIDUAL'">
          <div
          isteven-multi-select
          input-model="userFriends"
          output-model="outputUserFriends"
          button-label=" icon fullName"
          tick-property="ticked">
         </div>
     </div>
  </div>
</div>

在控制器中:

if($scope.shareOptions == 'INDIVIDUAL' && $scope.outputUserFriends.length == 0){
      $window.alert("Please select your INDIVIDUALS");
      return;
    }

这里outputUserFriends显示未定义的长度。为什么呢?

3 个答案:

答案 0 :(得分:0)

根据您的要求,像这样定义outputUserFriends

$scope.outputUserFriends = ['a', 'b']; (your list goes here)
alert($scope.outputUserFriends.length);

您将能够访问此数组的长度。在这里添加一个工作代码集

结帐 codepen

答案 1 :(得分:0)

定义

"<NSManagedObject: 0x6000002a0240> (entity: CollectionViewData; id: 0xd000000000040000 <x-coredata://9BF8B113-771A-4611-8080-03C65A83A0F0/CollectionViewData/p1> ; data: <fault>)",
"<NSManagedObject: 0x6000002a02a0> (entity: CollectionViewData; id: 0xd000000000080000 <x-coredata://9BF8B113-771A-4611-8080-03C65A83A0F0/CollectionViewData/p2> ; data: <fault>)"
)

然后检查 $scope.outputUserFriends = {user:''} 也许工作

答案 2 :(得分:-1)

这可能是因为当你使用$scope.outputUserFriends.length ngModel时没有将值绑定到该对象中。

只需将$scope.outputUserFriends.length定义为对象即可解决此问题。