Javascript AngularJS将变量绑定到与该变量相关的数组

Javascript AngularJS将变量绑定到与该变量相关的数组,javascript,angularjs,data-binding,Javascript,Angularjs,Data Binding,我是一名日本学生。所以我的英语不容易读。对不起 我用AngularJS制作素数列表。用户输入两个值,valFrom和valTo。该列表由两个数字组成 我想绑定到列表的输入值。当我输入输入时,列表会根据值动态变化。但事实并非如此。当我输入输入时,列表不会改变。我想将这些值绑定到列表 下面是我做的。值未排序,因为使用的是对象,而不是数组 这是index.html。 <!doctype html> <html lang="ja" ng-app="MYAPP"> <head

我是一名日本学生。所以我的英语不容易读。对不起

我用AngularJS制作素数列表。用户输入两个值,valFrom和valTo。该列表由两个数字组成

我想绑定到列表的输入值。当我输入输入时,列表会根据值动态变化。但事实并非如此。当我输入输入时,列表不会改变。我想将这些值绑定到列表

下面是我做的。值未排序,因为使用的是对象,而不是数组

这是index.html。

<!doctype html>
<html lang="ja" ng-app="MYAPP">
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.0-rc.2/angular.min.js">   </script>
    <script src="script.js"></script>
</head>

<body>
    <div ng-controller="inputCtrl">
        <h1>Make prime number list from {{fromVal}} to {{toVal}}</h2>
        <input type="number" ng-model="fromVal"><br>
        <input type="number" ng-model="toVal"><br>

        <!-- prime numbers list -->
        <div ng-controller="primeListCtrl">
            <div ng-repeat="(val, flag) in primeFlags">
                {{val}}</td><td>{{flag==true? "is prime": "isn't prime"}}
            </div>
        </div>
    </div>

</body>

使素数列表从{fromVal}}到{{toVal}}


{{val}{{flag==true?“是质数”:“不是质数”}

script.js

angular.module('MYAPP', []).

controller('inputCtrl', function($scope){
    $scope.fromVal = 10;
    $scope.toVal = 50;
}).

controller('primeListCtrl', function($scope){
    /* 
        If primeFlags[i + ""] is true, i is prime number.
        Keys are string, values are boolean. 
    */
    $scope.primeFlags = {};

    // fill with true
    for(var i = 2; i <= $scope.toVal; i++){
        $scope.primeFlags[i+""] = true;
    }
    // set false
    for(var i = 2; i <= $scope.toVal; i++){
        for(var j = 2; j < i; j++){
            if(i%j === 0){
                $scope.primeFlags[i+""] = false;
                break;
            }
        }
    }
});
angular.module('MYAPP',[])。
控制器('inputCtrl',函数($scope){
$scope.fromVal=10;
$scope.toVal=50;
}).
控制器('primeListCtrl',函数($scope){
/* 
如果primeFlags[i+“”]为真,则i为素数。
键是字符串,值是布尔值。
*/
$scope.primeFlags={};
//充满真实

对于(var i=2;i您的素数列表是完全动态的吗?如果是,您可以在函数上创建素数列表,然后在中继器中使用该函数的结果:

$scope.primeFlags = function(){
      var primeList = {};
      // fill with true
      for(var i = 2; i <= $scope.toVal; i++){
          primeList[i+""] = true;
      }
      // set false
      for(var i = 2; i <= $scope.toVal; i++){
          for(var j = 2; j < i; j++){
              if(i%j === 0){
                  primeList[i+""] = false;
                  break;
              }
          }
      }

      return primeList;
    };
$scope.primeFlags=函数(){
var primeList={};
//充满真实

对于(var i=2;i>>您的素数列表是完全动态的吗?不是。多亏了您,我有了新的方法。我知道$scope中的一些函数会被调用,如果有任何更改的话。
<div ng-repeat="(val, flag) in primeFlags()">
app.controller('primeListCtrl', function($scope){
    /* 
        If primeFlags[i + ""] is true, i is prime number.
        Keys are string, values are boolean. 
    */
    var primeList = [];
    // fill with true
    for(var i = 0; i <= 1000; i++){
        primeList[i] = {id: i, flag: true};
    }
    // set false
    for(var i = 0; i <= 1000; i++){
        for(var j = 2; j < i; j++){
            if(i%j === 0){
                primeList[i].flag = false;
                break;
            }
        }
    }

    $scope.primeFlags = function(){
      return primeList.slice($scope.fromVal, $scope.toVal);

    };
});
<div ng-repeat="val in primeFlags()">
                {{val.id}}&mdash;{{val.flag==true? "is prime": "isn't prime"}}
            </div>