Closed wclr closed 13 years ago
Based on the new folder structure ( http://edge.javascriptmvc.com/docs.html#!organizing ) it should get
my_app/more_than_one_word/views/view_name
How are you calling this.view?
well i just call this.view("view_name")
my controller plugin name is "more_than_one_word"
it tries to get my_app/views/morethanoneword/view_name
so it tries morethanoneword (as a solid word) instead of more_than_one_word
hm.. I did not closed it consciously at least
can you provide a breaking test case?
I added this test to jquery/controller/view/test recently:
test("complex paths nested inside a controller directory", function(){ $.Controller.extend("Myproject.Controllers.Foo.Bar");
var path = jQuery.Controller._calculatePosition(Myproject.Controllers.Foo.Bar, "init.ejs", "init")
equals(path, "//myproject/views/foo/bar/init.ejs", "view path is correct")
})
Yours is a variation of that it sounds like
I'm going to close this. Please provide a breaking case (and test code) and reopen it.
Well, maybe your concept has changed, but what I mean was:
Myproject.Controllers.FooBar (For and Bar without dot). And in 3.1 i've got "_" (underline symbol between "foo" and "bar" in the generated path to a view ("foo_bar") and now I've got just "foobar"
To be more concrete: I just compared the code in 3.1 and 3.2 in controoler/view/view.js function _calculatePosition in 3.2 (and calculatePosition in 3.1)
So lets my controller class full name be: Project.Controllers.FooBar
The point is that in 3.1: controller_name = Class._shortName and what we got there was: controller_name = foo_bar and then the calculated path to view: vews/foo_bar/view_name.ejs
and in 3.2 there is some sophisticated code for controller_name and final view path, and so we've got now: controller_name = foobar (without underline symbole between Foo and Bar) and a path to view: vews/foobar/view_name.ejs
It says I can not reopen this issue
To be concrete, can't you just say something like:
In 3.1:
A.B.FooBar looks in a/b/foo_bar
but in 3.2
A.B.FooBar looks in a/b/foobar
Is that is what is happening?
essentially the _ is getting lost.
Yes, exaclty.
This would be the breaking test:
$.Controller.extend("Myproject.Controllers.FooBar");
path = jQuery.Controller._calculatePosition(Myproject.Controllers.FooBar, "init.ejs", "init")
equals(path, "//myproject/views/foo_bar/init.ejs", "view path is correct")
Ok it should be fixed now. Just needed to run the controller name through jQuery.String.underscore.
3.2 beta 2:
in controller with more than one word name (for example my_more_than_one_word_controller) this.view("view_name", params) tries to get view with path:
my_app/views/mymorethanoneword/view_name
and i suppose it should:
my_app/views/my_more_than_one_word/view_name
so underline character is missed.