【解決方法】ng-modelをパラメータとしてng-mousedownに渡す方法


このページに HTML ページがあります。ng-model の値をパラメータとして ng-mousedown に渡したいです:-

そして、私はhtmlファイルに関してjsファイルを持っており、このファイルにangularコードを記述します。 CHECK(searchtext) という関数があります。mousedownイベントで呼び出す必要がありますが、searchtextパラメータがunknownとして取得されます。

JavaScript
/// <reference path="library/angular.js" />


'use strict';

var app = angular.module('demo', ['ngSanitize', 'ui.select']);
app.filter('propsFilter', function () {
 
    return function (items, props) {
        var out = [];

        if (angular.isArray(items)) {
            var keys = Object.keys(props);

            items.forEach(function (item) {
              var itemMatches = false;
                  //itemMatches = true;// when data will populate from database.
                for (var i = 0; i < keys.length; i++) {
                    var prop = keys[i];
                    var text = props[prop].toLowerCase();
                    if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {
                     //  itemMatches = false;
                         itemMatches = true;// when data will populate from database.

                        break;
                    }
                }
              
                if (itemMatches) {
                    out.push(item);
                }
            });
        } else {

            out = items;
        }

        return out;
    };
});

app.controller('DemoCtrl', function ($scope) {
  
    var result = this;
    result.tagTransform = function (newTag) {

        var item = {
            name: newTag


        };

        return item;
    };
    //var str = "January,February,March,April,May,June,July,August,September,October singh";
    //var splittedString = str.split(',');
    var arr = [];
    //splittedString.forEach(function (v) {
    //    arr.push({ name: v });
    //});

    var arr = [
        {
           
            "name": "TCS",
            "Access": "TATA"

        },
        {
          
            "name": "GG",
            "Access": "GOOGLE"

        },

        {
           
            "name": "MS",
            "Access": "Micosoft"

        }
    ];
    result.people = arr;
    result.colors = ['Blue', 'Red'];
    result.selectedPeople2 = result.selectedPeople;

    $scope.check = function (searchText) {
        debugger;
        var Forsecond="";
          var ff = searchText[0];
          var dd = ff.name;
          if(dd==ff.name)
          {
              Forsecond= ff.Access;
          }
          return Forsecond;
   
    }
});

私が試したこと:

このページに HTML ページがあります。ng-model の値をパラメータとして ng-mousedown に渡したいです:-

そして、私はhtmlファイルに関してjsファイルを持っており、このファイルにangularコードを記述します。 CHECK(searchtext) という関数があります。mousedownイベントで呼び出す必要がありますが、searchtextパラメータがunknownとして取得されます。

JavaScript
/// <reference path="library/angular.js" />


'use strict';

var app = angular.module('demo', ['ngSanitize', 'ui.select']);
app.filter('propsFilter', function () {
 
    return function (items, props) {
        var out = [];

        if (angular.isArray(items)) {
            var keys = Object.keys(props);

            items.forEach(function (item) {
              var itemMatches = false;
                  //itemMatches = true;// when data will populate from database.
                for (var i = 0; i < keys.length; i++) {
                    var prop = keys[i];
                    var text = props[prop].toLowerCase();
                    if (item[prop].toString().toLowerCase().indexOf(text) !== -1) {
                     //  itemMatches = false;
                         itemMatches = true;// when data will populate from database.

                        break;
                    }
                }
              
                if (itemMatches) {
                    out.push(item);
                }
            });
        } else {

            out = items;
        }

        return out;
    };
});

app.controller('DemoCtrl', function ($scope) {
  
    var result = this;
    result.tagTransform = function (newTag) {

        var item = {
            name: newTag


        };

        return item;
    };
    //var str = "January,February,March,April,May,June,July,August,September,October singh";
    //var splittedString = str.split(',');
    var arr = [];
    //splittedString.forEach(function (v) {
    //    arr.push({ name: v });
    //});

    var arr = [
        {
           
            "name": "TCS",
            "Access": "TATA"

        },
        {
          
            "name": "GG",
            "Access": "GOOGLE"

        },

        {
           
            "name": "MS",
            "Access": "Micosoft"

        }
    ];
    result.people = arr;
    result.colors = ['Blue', 'Red'];
    result.selectedPeople2 = result.selectedPeople;

    $scope.check = function (searchText) {
        debugger;
        var Forsecond="";
          var ff = searchText[0];
          var dd = ff.name;
          if(dd==ff.name)
          {
              Forsecond= ff.Access;
          }
          return Forsecond;
   
    }
});

解決策 1

このようにしてみてください

HTML
<html>
<head>
    <title></title>    
    <script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
    <script>
        var app = angular.module('myapp', []);
        app.controller('myctrl', myfun);
        function myfun($scope) {
            $scope.myTextValue = 'This is textbox';
           
            $scope.check = function (model) { 
                alert(model.myTextValue);// or   alert($scope.myTextValue);
            }
        }
    </script>
</head>

<body ng-controller="myctrl" ng-app="myapp">
    <input type="text" ng-model="myTextValue" ng-mousedown="check(this)" />     
</body>
</html>

コメント

タイトルとURLをコピーしました