2017-01-13 5 views
1

У меня есть специальный код WordPress, который при использовании в WYSIWYG возвращает кучу html с прикрепленной функцией угла.WYSIWYG shortcode to AngularJS function

Ниже приведен пример того, что я пытаюсь сделать.

SHORTCODE:

add_shortcode('example', function($atts) { 
    extract(shortcode_atts([ 
     'string' => 'This is default text' 
    ], $atts)); 

    ob_start(); 
     ?> 
      <div class="example-layout"> 
       <div class="container"> 
        <button ng-click="do_something('<?= $string; ?>')"> 
         Click here 
        </button> 
       </div> 
      </div> 
     <?php 
    return ob_get_clean(); 
}); 

Использование:[example string="Override default string"]

Возвращает:

<div class="example-layout"> 
    <div class="container"> 
     <button ng-click="do_something('Override default string')"> 
      Click here 
     </button> 
    </div> 
</div> 

Угловая функция:

$scope.do_something = function(string) { 
    alert(string); 
}; 

Это не сработает, но я изо всех сил пытаюсь найти разумное решение.

Любая помощь или совет были бы замечательными.

ответ

1

Попробуйте этот путь

<div class="container" ng-controller="TodoCtrl"> 
    <button ng-click="do_something('testClick')">CLICK ME</button> 
    </div> 

На Угловая:

function TodoCtrl($scope) { 

     $scope.do_something = function (name){ 
     angular.isFunction($scope[name]) 
      $scope[name]() 
     } 

     $scope.testClick = function(){ 
      alert("Called"); 
     } 
    }