从AngularJS Controller调用Javascript函数

时间:2014-05-21 08:02:42

标签: javascript angularjs

我还在学习将jquery调用转换为Angular js。 我之前使用ziplookup

构建了一个用于zip查找的网页

为此,我必须补充:

<script src="http://ziplookup.googlecode.com/git/public/ziplookup/zipLookup.min.js" type="text/javascript">
</script>

$(document).ready(function() {                                  // When the document loads,

            $.zipLookupSettings.libDirPath = 'ziplookup/'               // (Optionally) set the library folder path manually

            $('[name=zipcode]').blur(function(){                        // Set on blur
                $.zipLookup(                                            // Do a Zip code Lookup
                    $(this).val(),                                      // Zip code Field Value
                    function(cityName, stateName, stateShortName){      // If Successful,
                        $('input[name=city]').val(cityName);            // Set City name
                        $('input[name=state_short]').val(stateName);    // Set State abbreviation
                        $('input[name=state]').val(stateShortName);     // Set State name
                        $('.message').html("Found Zipcode");            // Add a message
                    },
                    function(errMsg){                                   // If Zip couldn't be found,
                        $('.message').html("Error: " + errMsg);         // Add an error message
                    });
            });
        });

现在我希望将其移植到角度js。 而不是在模糊事件上调用zipLookup函数,我从按下按钮调用它。并设置相同的参数,但它给出: ReferenceError:未定义zipLookupSettings ReferenceError:未定义zipLookup

$scope.zipeval = function(){
     //zipLookupSettings.libDirPath = 'ziplookup/';
    zipLookup(                                            // Do a Zip code Lookup
        11722,                                      // Zip code Field Value
        function(cityName, stateName, stateShortName){      // If Successful,
            $log.log(cityName + stateName + stateShortName);
            //$('input[name=city]').val(cityName);            // Set City name
            //$('input[name=state_short]').val(stateName);    // Set State abbreviation
            //$('input[name=state]').val(stateShortName);     // Set State name
            //$('.message').html("Found Zipcode");            // Add a message
        },
        function(errMsg){                                   // If Zip couldn't be found,
            $log.log("error");       // Add an error message
        });
};

请指导。我是否需要创建指令。

1 个答案:

答案 0 :(得分:0)

在这里,您将其称为本地功能。

你应该把它称为$ .zipLookup。

在HTML中,您可以添加一个指令。

 <input name="zipcode" custDirective></input>

在指令的链接功能中,您可以绑定诸如&#39; blur&#39;之类的事件。或者点击&#39;。在那里你可以调用$ .zipLookup()