javascript - Error invoking Method 'filterMulitpleTags': Internal server error [500] -
i dont understand why getting internal server error 500. because of items aren't being hidden want them to. console output saying '$' isnt defined isnt right dont believe since link jquery.
html:
<template name="room"> <div class="container-fluid"> <h1> sprint retrospective</h1> <form id="tagsearchform" class="navbar-form navbar-right" role="search"> <div class="form-group"> <span><i class="fa fa-filter"></i></span> <input id="filters" type="text" class="form-control" placeholder="filter tags..."> </div> <button id="filtertagsbutton" type="button" class="btn btn-default">filter</button> </form> {{> card}} <hr> <div class="container-fluid"> <div class="row"> <div class="col-xs-6 col-sm-6"> <h2> category </h2> <ul class="fa-ul"> {{#each goodcards}} <div class="row"> <div id="card" class="card-panel green"> <span class="white-text"> {{text}} </span> <div class="card-action"> <div class="chip"> <i id="deletecardbutton" class="material-icons fa fa-trash-o"></i> remove card </div> {{#each tags}} <div class="chip"> <tag class="tag" id="{{this}}">{{this}}</tag> <i id="removetag" class="material-icons fa fa-ban"></i> </div> {{/each}} </div> </div> </div> {{/each}} </ul> </div> <div class="col-xs-6 col-sm-6"> <h2> bad category </h2> <ul class="fa-ul"> {{#each badcards}} <div class="row"> <div id="card" class="card-panel red accent-4"> <span class="grey-text"> {{text}} </span> <div class="card-action"> <div class="chip"> <i id="deletecardbutton" class="material-icons fa fa-trash-o"></i> remove card </div> {{#each tags}} <div class="chip"> <tag class="tag" id="{{this}}">{{this}}</tag> <i id="removetag" class="material-icons fa fa-ban"></i> </div> {{/each}} </div> </div> </div> {{/each}} </ul> </div> </div> </div> </div> </template> js:
meteor.methods({ filtersingletag: function(tag){ var numcards; numcards = $(".card-panel").length; for(var = 0; < numcards;i++){ var comptags; var found; found = false; comptags = $(".card-panel").eq(i).find(".tag"); for(var j = 0; j < comptags.length; j++){ var str; str = "" + comptags[j].firstchild; if(str.tolowercase() == tag){ found = true; } } if(!found) $(".card-panel").eq(i).hide(); } }, filtermulitpletags: function(tags){ var numcards; numcards = $(".card-panel").length; for(var = 0; < numcards;i++){ var comptags; var found; found = false; comptags = $(".card-panel").eq(i).find(".tag"); for(var j = 0; j < comptags.length; j++){ var str; str = "" + comptags[j].text; if(tags.indexof(str.tolowercase()) >= 0) found = true; } if(!found) $(".card-panel").eq(i).hide(); } }, clearfilter: function(){ var numcards; numcards = $(".card-panel").length; for(var = 0; < numcards;i++){ $(".card-panel").eq(i).show(); } } }); console:
exception while invoking method 'filtersingletag' referenceerror: $ not defined i20160208-13:36:40.290(-6)? @ [object object].meteor.methods.filtersingletag (/home/thouse/retrospectre/src/.meteor/local/build/programs/server/app/js/room.js:145:20) i20160208-13:36:40.290(-6)? @ maybeauditargumentchecks (/home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/ddp-server.js:1785:12) i20160208-13:36:40.291(-6)? @ /home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/ddp-server.js:872:20 i20160208-13:36:40.291(-6)? @ [object object]._.extend.withvalue (/home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/meteor.js:1021:17) i20160208-13:36:40.291(-6)? @ /home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/ddp-server.js:871:41 i20160208-13:36:40.291(-6)? @ [object object]._.extend.withvalue (/home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/meteor.js:1021:17) i20160208-13:36:40.291(-6)? @ /home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/ddp-server.js:870:46 i20160208-13:36:40.292(-6)? @ trycalltwo (/home/thouse/.meteor/packages/promise/.0.5.1.1550ocw++os+web.browser+web.cordova/npm/node_modules/meteor-promise/node_modules/promise/lib/core.js:45:5) i20160208-13:36:40.292(-6)? @ doresolve (/home/thouse/.meteor/packages/promise/.0.5.1.1550ocw++os+web.browser+web.cordova/npm/node_modules/meteor-promise/node_modules/promise/lib/core.js:171:13) i20160208-13:36:40.292(-6)? @ new promise (/home/thouse/.meteor/packages/promise/.0.5.1.1550ocw++os+web.browser+web.cordova/npm/node_modules/meteor-promise/node_modules/promise/lib/core.js:65:3) i20160208-13:36:40.293(-6)? @ [object object]._.extend.protocol_handlers.method (/home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/ddp-server.js:848:21) i20160208-13:36:40.293(-6)? @ /home/thouse/retrospectre/src/.meteor/local/build/programs/server/packages/ddp-server.js:729:85
meteor methods defined , executed on server (also client, depending on they're defined). since server doesn't have access jquery, $ undefined , it's throwing error. looks want execute client-side code when happens. in case, you're looking events:
in client-side js code:
template.yourtemplatename.events({ 'click #filtertagsbutton' (event, template) { // stuff question goes here. } }); i can't tell 1 single versus multiple based on example, think can gist here. i'd highly recommend reading the meteor guide kind of thing.
Comments
Post a Comment