如何链接到AngularJS中的pdf?

时间:2015-12-18 19:32:04

标签: javascript angularjs spring pdf

下面的代码包含一个超链接,当用户点击链接时,该超链接会使来自服务器的弹簧生成的pdf加载到新的浏览器窗口中。问题是某些用户的浏览器中有弹出窗口被阻止。 当用户点击链接时,为了使pdf在相同的浏览器窗口中打开,需要对下面的代码进行哪些具体更改?请注意,此pdf由弹簧控制器生成。 / p>

这是html:

Parser

这是Angular控制器代码:

abstract class Parser {

    public function parse()
    {   
        $this->mapApiKeysToColumns();
    }

    protected function apiKeys()
    {
         // Gets First rows of CSV (columns)
         return $this->reader->fetchOne(0);
    }

    protected function mapApiKeysToColumns()
    {
        foreach($this->apiKeys() as $api_key) {
            array_push($this->keys, $this->key_mappings[$api_key]);
        }
    }

    protected function createArrayFromData()
    {
        // Gets first chunk of data from csv
        $this->reader->setOffset($this->offset)->setLimit($this->parse_chunk)->fetchAll(function($row, $offset) {
            // takes the Keys and combines them with the data
            array_push($this->data, array_combine($this->keys, $row));
        });
    }
}

2 个答案:

答案 0 :(得分:2)

window.open支持第二个参数windowName。您可以将其设置为"_self"以在同一窗口中打开URL。

window.open(fileURL, "_self");

有关详细信息,请参阅here

更好的方法可能是使指令在导航之前将链接href更新为正确的URL。这将允许您使用_blank作为目标并在新的选项卡/窗口中打开它。

答案 1 :(得分:1)

您需要向用户提供一个链接,点击其href为window.open,而不是调用fileUrl。您可以通过在用户单击链接之前生成PDF,或者在生成PDF之后为其提供单独的链接来执行此操作。