为了理解以下有关trigger: "=trigger"
app.module.directive('messageModal', function ($compile) {
return {
scope: {
trigger: "=trigger",
},
controller: ['$scope', '$element', '$attrs', '$timeout', function ($scope, $element, $attrs, $timeout) {
$scope.trigger = function(title, message, modal_class, color, auto_hide){
我的理解是,通过scope: {},
指令'messageModal'
创建了一个全新的范围对象。但是trigger: "=trigger"
做了什么?怎么样$scope.trigger
?
为了理解指令的作用,我需要一些关于我应该学习的方向。谢谢!
答案 0 :(得分:2)
scope
选项中的属性是每个属性与指令标记中的属性之间的映射。当您在某处使用它时。
Scope的属性值定义了范围属性的绑定方式:
=
表示双向绑定@
表示文字绑定。&
表示功能绑定。可以通过两种方式提供范围属性(使用上述任何绑定):
{ some: "=" }
表示scope属性及其HTML属性副本将共享相同的标识符。{ some: "=whatever" }
允许您定义如何识别绑定到整个范围属性的属性。 隔离范围已经绑定了属性和属性后,您将访问它们并注入$scope
并访问该属性:$scope.whatever
。
答案 1 :(得分:1)
触发'没有什么特别之处,它只是您可以用来与HTML指令进行通信的属性名称。
例如,如果你这样使用它:
$product = $this->site->getProductByID($item['product_id']);
$inventory = $this->site->getInventoryByID($product->id);
if($pp_up === TRUE && (($product->quantity < 0) && ($product->parent_id != 0) && ($inventory->box_qty != 0)) === TRUE ){
$s_Update = array(
'quantity' => ($product->quantity+$inventory->qty_per_box),
'id' => $inventory->ea_id
);
$this->db->where('id',$inventory->ea_id);
$this->db->update('products',$s_Update);
// the query runs successfully up till here------------------------------------
/*This Never perform any update */
if($this->db->affected_rows() > 0){
$this->db->update('products', array('quantity' => ($product->quantity-1), array('id' => $inventory->box_id)));
然后在指令$ scope.trigger中将等于&#34;无论在这里&#34;。