기존의 두 가지 Anglejs 문제가 있습니다
1.
기사는 $http를 통해 로드됩니다. 이제 기사가 로드된 후 브라우저 제목을 기사 제목으로 바꾸고 싶습니다.
즉, 게시물이 로드된 후 브라우저 제목과 post.title이 동일하게 표시됩니다.
크로스 도메인 통신 솔루션을 찾아보다가 이런 방법을 보게 되었습니다.(AngularJS 컨트롤러는 어떻게 통신하나요?) 이 세 가지 방법 중 처음 두 가지 방법은 현재 구조에 적합하지 않아 세 번째 방법을 사용하여 동기화를 구현합니다. 치명적인 점은 트리거(클릭 등)를 통해 동기화해야 한다는 점인데, 사실 트리거를 통한 동기화가 아닌 자동으로 동기화하는 방법을 여쭤보고 싶습니다
2.
$scope 콜백,
예를 들어, 로드된 아티클에는 pre 태그로 래핑된 코드가 포함되어 있습니다. 로드 후 다른 라이브러리를 사용하여 강조 표시를 구현해야 하므로 데이터를 바인딩하고 렌더링한 후에 강조 표시 작업을 수행해야 합니다. . 그러나 아무런 해결책도 찾지 못했습니다.
나도 일부 글을 썼는데 두 가지 장점을 모두 얻었습니다
첫 번째 유형:
데이터 바인딩 후 현재 페이지의 모든 사전 태그를 재귀적으로 쿼리하고 해당 태그가 발견되거나 제한된 횟수 후에 강조 표시됩니다.
두 번째 유형:
window.setTimeout(function(){}, 1000);
두 방법의 결과는 첫 번째 방법이 작동하지 않는다는 것입니다. 아무리 반복해도 pre 태그를 찾을 수 없습니다
두 번째 옵션도 가능하지만 좋은 해결책은 아닌 것 같습니다
巴扎黑2017-05-15 16:54:56
도메인 간 통신이 무슨 뜻인지 잘 모르겠습니다. 컨트롤러 간의 통신이 가능할까요? 그리고 방아쇠?
1. 이렇게 data-*를 사용하지 않고 ng-bind를 직접 작성하면 됩니다
2.
이 위치한 컨트롤러는 main
컨트롤러와 동일한 수준에 있습니다. 외부에 상위 컨트롤러를 추가한 다음 mainController.$scope.$parent.title = post.title
을 사용하거나 $rootScope를 직접 사용할 수 있습니다(권장하지 않음). $emit/$broadcast/$on을 통해서도 이 작업을 수행할 수 있지만 반드시 필요한 것은 아닙니다. <title>
所在的controller是和 main
这个控制器平级的。你可以在他们之外加一个父控制器,然后mainController.$scope.$parent.title = post.title
, 或者直接用$rootScope (不怎么推荐)。也可以通过$emit/$broadcast/$on 这样来做 不过没什么必要了。
然后:
<title ng-bind="$parent.title||'Default Title'"></title>
3、 以 angular highlight
为关键字可以在github搜到一些不错的高亮插件。 bower install 之
4、 不要用window.setTimeout, 用angular提供的 $timeout()
它会返回一个promise。
5、 其实对于第二个问题更好的方法是使用 $resource.get().$promise.then();
그런 다음:
angular 하이라이트
를 키워드로 사용하면 좋은 하이라이트 플러그인을 검색할 수 있습니다. 🎜의 정자 설치
4. window.setTimeout을 사용하지 마세요. Angle에서 제공하는 $timeout()
을 사용하세요. Promise가 반환됩니다. 🎜
5. 실제로 두 번째 문제를 해결하는 더 좋은 방법은 $resource.get().$promise.then();
// 또는 $http 서비스를 사용하여 원격 데이터가 구현 전에 로드되었습니다. 🎜PHP中文网2017-05-15 16:54:56
기사를 렌더링하는 템플릿의 제목 요소에 클래스wtitle
를 추가하면 현재 페이지의 제목이 기사의 제목으로 변경됩니다.
위챗에서도 가능해요~
wtitle의 기능은 element.text()의 내용을 document.title로 설정하는 것입니다. iframe을 사용하는 목적은 앱의 웹뷰에서 이를 효과적으로 만드는 것입니다
으아악