$sce 서비스, 서버에서 전송된 데이터를 렌더링 가능한 html 데이터로 설정
3558 단어 angularjs
서비스 계층:
@Service
public class SearchServiceImpl implements SearchService {
@Autowired
private SolrTemplate solrTemplate;
/**
*
* @param param
* @return
*/
@Override
public Map search(Map param) {
Map data = new HashMap<>();
Query query = new SimpleQuery("*:*");
String keywords = (String) param.get("keywords");
if (keywords != null && StringUtils.isNotBlank(keywords)){
HighlightOptions options = new HighlightOptions();
options.addField("title");
options.setSimplePrefix("");
options.setSimplePostfix("");
query = new SimpleHighlightQuery().setHighlightOptions(options);
Criteria criteria = new Criteria("keywords").is(keywords);
query.addCriteria(criteria);
HighlightPage solrItems = solrTemplate.queryForHighlightPage((HighlightQuery) query, SolrItem.class);
List> highlighted = solrItems.getHighlighted();
for (HighlightEntry entry : highlighted) {
SolrItem entity = entry.getEntity();
if ( entry.getHighlights().size()> 0 && entry.getHighlights().get(0).getSnipplets().size()> 0){
String title = entry.getHighlights().get(0).getSnipplets().get(0);
entity.setTitle(title);
}
}
List content = solrItems.getContent();
data.put("rows",content);
return data;
}
ScoredPage solrItems = solrTemplate.queryForPage(query, SolrItem.class);
List content = solrItems.getContent();
data.put("data",content);
return data;
}
}
Controller 레이어:
@RestController
@RequestMapping("/search")
public class SearchController {
@Reference(timeout = 10000)
private SearchService searchService;
@PostMapping("/searchItem")
public Map searchItem(@RequestBody Map param){
try {
return searchService.search(param);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
js 코드:
var app=angular.module("myApp",[]);
app.controller("mycontroller",function ($scope, $sce, $http) {
$scope.trustHtml = function(data) {
return $sce.trustAs($sce.HTML, data);
};</code></pre>
<pre><code class="language-html hljs">$scope.searchEntity = {};
$scope.search=function () {
$http.sendPost("/search/searchItem",$scope.searchEntity).then(
function (response) {
$scope.map = response.data;
}
);
});
html :
HelloWord
ng-bind-html textarea
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SpringMvc+Angularjs 멀티 파일 대량 업로드SpringMvc 코드 jar 가방 commons-fileupload commons-io spring-mvc.xml 구성 Controller 로컬 저장 AngularJs 코드 Form 양식 커밋 위에서 말한 것은 여...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.