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

Creating and implementing an array from space delimited text: AngularJS

本文关键字:实现 数组 AngularJS 创建 空格 分隔 文本      更新时间:2024-01-19

并感谢您的耐心等待。我是一个使用老式方法的经验丰富的程序员,多年来一直使用旧风格的Javascript。我知道JQuery之类的东西已经有一段时间了,但一直"太忙",无法学习新东西。嗯,我现在正在努力学习这些东西,并选择了AngularJS。

我正在观看教程视频,阅读AngularJS的文档和API参考资料,但不同的命名确实阻碍了我的进步。但我正在努力。对我来说,使用一个"真实"问题的例子可以帮助我了解如何利用功能。

在本例中,我有一个Power Ball数字数组,希望能够粘贴到您可能从Power Ball网站复制的以空格分隔的中奖数字中。然后,这将解析输入并精简所有单个数字。最终,也许会以不同的方式赢得任何获胜的组合。不,这不是我正在构建的产品,但我认为这会导致我在这个工具箱中使用许多不同的工具。

所以我的问题是:

  • 我在我的服务(工厂)中初始化了数组,并表明我可以从控制器推送到它。这是正确的吗
  • 如果不正确的话,我目前的做事方式(例如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/

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

很高兴听到你进入了angular。以下是我将如何解决您的问题JSFiddle

我用ng变化来观察输入值,

<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;
}

你就是这么想的吗?