There are only two ways of defining pages for ons-navigator: Define a template within the same file as the navigator Define a page in its own file (not in a template). There can only be one page per file. The problem you have here is that you are trying to define a template within a file, but it’s not the same file as the one ons-navigator is defined in. It is not possible to have this work with ons-navigator. Instead what you should do is move each template in index2.html to its own separate file. Then you will be able to push to ons-navigator by passing the name of the file.