从空格分隔文本创建和实现数组:AngularJS

时间:2013-12-02 18:34:07

标签: javascript arrays angularjs

感谢您的耐心等待。我是一名经验丰富的编码员,使用旧式的方法,并使用旧式的Javascript多年。我已经了解了JQuery,并且已经有一段时间了,但是“太忙了”才能学习新东西。好吧,我现在正在努力学习这些东西,并选择了AngularJS。

我正在观看教程视频,并阅读AngularJS的文档和API参考,但不同的命名法确实阻碍了我的进步。但我正在努力。对我来说,使用“真实”问题的一个例子有助于我理解如何利用这些功能。

在这个例子中,我有一系列Power Ball数字,并希望能够粘贴你可能从Power Ball网站复制的空格分隔的中奖号码。然后,这将解析所有单个数字的输入和hi-lite。最终,或许可以通过不同的方式提升任何获胜组合。不,这不是我正在构建的产品,但我认为这会导致我在此工具箱中使用许多不同的工具。

所以我的问题是:

  • 我在我的服务(工厂)中初始化了数组,并显示我可以从我的控制器推送它。这是对的吗?
  • 我目前的做事方式(例如ng级用法等)至少是可行的,如果不正确吗?
  • 如何在输入/文本框中使用空格分隔的输入来进行样式更改的比较?

以下是我的JavaScript代码示例。 (注意:我只是在一组数字中粘贴数组。)

    var lotteryCheckApp = angular.module('lotteryCheckApp', []);
    lotteryCheckApp.factory('PowerBall', function() {
        var PowerBall = {};
    PowerBall.numArray = ["42"];
    PowerBall.myNumbers = [
        {
            First_Number: '03',
            Second_Number: '07',
            Third_Number: '17',
            Fourth_Number: '21',
            Fifth_Number: '42',
            PowerBall: '21'
        }
    ];
    return PowerBall;
});

lotteryCheckApp.controller('PowerBallNumbersCtrl',function($scope,PowerBall) {
    $scope.powerball = PowerBall;
    $scope.winningStyle = true;
    $scope.powerball.numArray.push("21");

    $scope.myCheck = function(searchNum,numVal) {
        // the following code works for a simple input to value check
        if(searchNum == numVal) return true;
        else return false;
    }

我有一个JSFiddle链接:http://jsfiddle.net/Divermarv/VpyxZ/1/

再次感谢大家的耐心和回应。

1 个答案:

答案 0 :(得分:0)

很高兴听到你的声音变得棱角分明。以下是我如何解决您的问题JSFiddle

我使用ng-change来观察输入值,

<input type="text" ng-model="input" ng-change="convert()">

并将其提供给将输入转换为值数组的方法。

$scope.convert = function() {
    $scope.hiLite = $scope.input.split(" ");    
}

然后检查函数检查值是否在数组

$scope.myCheck = function(searchNum,numVal) {
    if(searchNum.indexOf(numVal) !== -1) return true;
    else return false;
}

这是你在想什么?